Uso de Atlantis
Atlantis activa comandos mediante comentarios de pull request.

TIP
Puede usar los siguientes nombres ejecutables.
atlantis helpatlantises un nombre ejecutable. Puede configurarlo mediante Executable Name.
run helprunes un nombre ejecutable global.
@GithubUser help@GithubUseres el usuario del host VCS que conectó a Atlantis mediante token de usuario.
Actualmente, Atlantis admite los siguientes comandos.
atlantis help
atlantis helpExplicación
Ver ayuda
atlantis version
atlantis versionExplicación
Imprime la salida de 'terraform version'.
atlantis plan
atlantis plan [options] -- [terraform plan flags]Explicación
Ejecuta terraform plan en la rama del pull request. Puede que desee volver a ejecutar plan después de que Atlantis ya lo haya hecho si ha cambiado manualmente algunos recursos.
Ejemplos
# Runs plan for any projects that Atlantis thinks were modified.
# If an `atlantis.yaml` file is specified, runs plan on the projects that
# were modified as determined by the `when_modified` config.
atlantis plan
# Runs plan in the root directory of the repo with workspace `default`.
atlantis plan -d .
# Runs plan in the `project1` directory of the repo with workspace `default`
atlantis plan -p project1
# Runs plan in the root directory of the repo with workspace `staging`
atlantis plan -w stagingOpciones
-d directoryEn qué directorio ejecutar plan relativo a la raíz del repo. Use.para la raíz.- Ej.
atlantis plan -d child/dir
- Ej.
-p projectPara qué proyecto ejecutar plan. Se refiere al nombre del proyecto configurado en el archivoatlantis.yamldel repo. No puede usarse al mismo tiempo que-do-wporque el proyecto ya define esto.-w workspaceCambia a este Terraform workspace antes de planificar. El valor predeterminado esdefault. Ignore esto si no usa Terraform workspaces. Los nombres de workspace no pueden contener/,\\,..,$, espacios en blanco o caracteres de control, y no pueden comenzar con-o~.--verboseAgrega el log de Atlantis al comentario.
NOTE
Un atlantis plan (sin flags), como los autoplans, descarta todos los plans creados previamente con atlantis plan -p/-d/-w
Flags adicionales de Terraform
Si terraform plan requiere argumentos adicionales, como -target=resource o -var 'foo=bar' o -var-file myfile.tfvars puede agregarlos al final del comentario después de --, ej.
atlantis plan -d dir -- -var foo='bar'Si siempre necesita agregar un determinado flag, vea Custom Workflow Use Cases.
Archivos automáticos de variables de entorno
Atlantis incluye automáticamente archivos de variables específicos del workspace si existen en su repositorio. Esta característica ayuda a reducir la duplicación entre diferentes entornos y workspaces.
Cómo funciona
Al ejecutar atlantis plan, Atlantis comprueba automáticamente si existe un archivo en env/{workspace}.tfvars relativo al directorio del proyecto. Si este archivo existe, Atlantis lo incluirá automáticamente usando el flag -var-file.
Ejemplos
my-terraform-project/
├── main.tf
├── variables.tf
└── env/
├── default.tfvars
├── staging.tfvars
└── production.tfvarsCuando ejecuta:
atlantis plan(usa el workspace predeterminado) incluye automáticamenteenv/default.tfvarsatlantis plan -w stagingincluye automáticamenteenv/staging.tfvarsatlantis plan -w productionincluye automáticamenteenv/production.tfvars
TIP
Esta característica funciona para cualquier nombre de workspace. Si tiene un workspace personalizado llamado dev-team-1, Atlantis buscará env/dev-team-1.tfvars.
Uso del flag -destroy
Ejemplo
Para realizar un plan destructivo que destruirá recursos, puede usar el flag -destroy así:
atlantis plan -- -destroy
atlantis plan -d dir -- -destroyNOTE
El flag -destroy genera un destroy plan. Si este plan se aplica, puede causar pérdida de datos o interrupciones del servicio. Asegúrese de haber revisado minuciosamente su configuración de Terraform y de tener la intención de eliminar los recursos especificados antes de usar este flag.
atlantis apply
atlantis apply [options] -- [terraform apply flags]Explicación
Ejecuta terraform apply para el plan que coincide con el directorio/proyecto/workspace.
TIP
Si no se especifica ningún directorio/proyecto/workspace, ej. atlantis apply, este comando aplicará todos los plans no aplicados de este pull request. Esto incluye todos los proyectos que han sido planificados manualmente con atlantis plan -p/-d/-w desde el último autoplan o comando atlantis plan. Para que los comandos de Atlantis funcionen, Atlantis necesita conocer la ubicación donde está el archivo de plan. Para eso, puede usar $PLANFILE que contendrá la ruta del archivo de plan que se usará en sus pasos personalizados. es decir terraform plan -out $PLANFILE
Ejemplos
# Runs apply for all unapplied plans from this pull request.
atlantis apply
# Runs apply in the root directory of the repo with workspace `default`.
atlantis apply -d .
# Runs apply in the `project1` directory of the repo with workspace `default`
atlantis apply -p project1
# Runs apply in the root directory of the repo with workspace `staging`
atlantis apply -w stagingOpciones
-d directoryAplica el plan para este directorio, relativo a la raíz del repo. Use.para la raíz.-p projectAplica el plan para este proyecto. Se refiere al nombre del proyecto configurado en el archivoatlantis.yamldel repo. No puede usarse al mismo tiempo que-do-w.-w workspaceAplica el plan para este Terraform workspace. Ignore esto si no usa Terraform workspaces. Los nombres de workspace no pueden contener/,\\,..,$, espacios en blanco o caracteres de control, y no pueden comenzar con-o~.--auto-merge-disabledDesactiva automerge para este comando apply.--auto-merge-method methodEspecifica qué merge method usar para el comando apply si automerge está habilitado. Implementado solo para GitHub.--verboseAgrega el log de Atlantis al comentario.
Flags adicionales de Terraform
Debido a que internamente Atlantis está ejecutando terraform apply plan.tfplan, cualquier opción de Terraform que cambiaría el plan se ignora, ej.:
-target=resource-var 'foo=bar'-var-file=myfile.tfvars
Se ignoran porque no pueden especificarse para un planfile ya generado. Si desea especificar estos flags, hágalo al ejecutar atlantis plan.
TIP
La inclusión automática del archivo env/{workspace}.tfvars ocurre durante la fase atlantis plan. Dado que atlantis apply usa el archivo de plan ya generado, cualquier variable específica del entorno ya está incorporada desde cuando se creó el plan.
Atlantis cancel
atlantis cancelExplicación
Cancela todos los comandos en cola para el pull request actual.
NOTE
Este comando no intenta detener o interrumpir comandos que ya se están ejecutando. Solo elimina los comandos posteriores que están esperando en la cola. Actualmente no hay ningún mecanismo en Atlantis para interrumpir el proceso que se está ejecutando en este momento.
Esto es útil si tiene varios comandos en cola (p. ej., atlantis apply para varios proyectos) y se da cuenta de que cometió un error en su PR. Usar cancel evita que se ejecuten los plans en cola. Especialmente con operaciones de larga duración, esto puede ahorrar tiempo y recursos.
Ejemplos
# An apply is currently running, and another is queued.
# This command will cancel the queued apply but not the running one.
atlantis cancelatlantis import
atlantis import [options] ADDRESS ID -- [terraform import flags]Explicación
Ejecuta terraform import que coincide con el directorio/proyecto/workspace. Este comando descarta el resultado del terraform plan. Después de un import y antes de un apply, se debe volver a ejecutar otro atlantis plan.
Para permitir el comando import se requiere la configuración --allow-commands.
Ejemplos
# Runs import
atlantis import ADDRESS ID
# Runs import in the root directory of the repo with workspace `default`
atlantis import -d . ADDRESS ID
# Runs import in the `project1` directory of the repo with workspace `default`
atlantis import -p project1 ADDRESS ID
# Runs import in the root directory of the repo with workspace `staging`
atlantis import -w staging ADDRESS IDTIP
- Al importar recursos
for_each, se requiere una dirección entre comillas simples.- ej.
atlantis import 'aws_instance.example["foo"]' i-1234567890abcdef0
- ej.
Opciones
-d directoryImporta un recurso para este directorio, relativo a la raíz del repo. Use.para la raíz.-p projectImporta un recurso para este proyecto. Se refiere al nombre del proyecto configurado en el archivo de configuración del repoatlantis.yaml. Esto no puede usarse al mismo tiempo que-do-w.-w workspaceImporta un recurso para un Terraform workspace específico. Ignore esto si no usa Terraform workspaces. Los nombres de workspace no pueden contener/,\\,..,$, espacios en blanco o caracteres de control, y no pueden comenzar con-o~.
Flags adicionales de Terraform
Si terraform import requiere argumentos adicionales, como -var 'foo=bar' o -var-file myfile.tfvars agréguelos al final del comentario después de --, p. ej.
atlantis import -d dir 'aws_instance.example["foo"]' i-1234567890abcdef0 -- -var foo='bar'Si es necesario que un flag se agregue siempre, vea Custom Workflow Use Cases.
atlantis state rm
atlantis state [options] rm ADDRESS... -- [terraform state rm flags]Explicación
Ejecuta terraform state rm que coincide con el directorio/proyecto/workspace. Este comando descarta el resultado del terraform plan. Después de ejecutar state rm y antes de un apply, se debe volver a ejecutar otro atlantis plan.
Para permitir el comando state se requiere la configuración --allow-commands.
Ejemplos
# Runs state rm
atlantis state rm ADDRESS1 ADDRESS2
# Runs state rm in the root directory of the repo with workspace `default`
atlantis state -d . rm ADDRESS
# Runs state rm in the `project1` directory of the repo with workspace `default`
atlantis state -p project1 rm ADDRESS
# Runs state rm in the root directory of the repo with workspace `staging`
atlantis state -w staging rm ADDRESSTIP
- Al ejecutar
state rmen recursosfor_each, se requiere una dirección entre comillas simples.- ej.
atlantis state rm 'aws_instance.example["foo"]'
- ej.
Opciones
-d directoryEjecuta state rm para un recurso en este directorio, relativo a la raíz del repo. Use.para la raíz.-p projectEjecuta state rm para un recurso en este proyecto. Se refiere al nombre del proyecto configurado en el archivo de configuración del repoatlantis.yaml. Esto no puede usarse al mismo tiempo que-do-w.-w workspaceEjecuta state rm para un recurso en un Terraform workspace específico. Ignore esto si no usa Terraform workspaces. Los nombres de workspace no pueden contener/,\\,..,$, espacios en blanco o caracteres de control, y no pueden comenzar con-o~.
Flags adicionales de Terraform
Si terraform state rm requiere argumentos adicionales, como -lock=false' agréguelos al final del comentario después de --, p. ej.
atlantis state -d dir rm 'aws_instance.example["foo"]' -- -lock=falseSi es necesario que un flag se agregue siempre, vea Custom Workflow Use Cases.
atlantis unlock
atlantis unlockExplicación
Elimina todos los bloqueos de atlantis y descarta todos los plans para este PR. Para desbloquear un plan específico puede usar la UI de Atlantis.
atlantis approve_policies
atlantis approve_policiesExplicación
Aprueba todas las fallas actuales de policy checking para el PR.
Vea también policy checking.
Opciones
--verboseAgrega el log de Atlantis al comentario.
Workflows basados en API
Además de los comentarios de pull request, Atlantis admite workflows basados en API para plan, apply y detección de drift. Estos endpoints permiten que herramientas externas y automatización interactúen con Atlantis de forma programática.
Capacidades clave:
- Plan y Apply sin un pull request (
POST /api/plan,POST /api/apply) - Detección de drift para identificar cambios de infraestructura fuera de Terraform (
POST /api/drift/detect) - Estado de drift para ver resultados de drift en caché (
GET /api/drift/status) - Remediación de drift para corregir drift detectado (
POST /api/drift/remediate)
Vea API Endpoints para la documentación completa y Server Configuration para el flag --enable-drift-detection.