Skip to content

Uso de Atlantis

Atlantis activa comandos mediante comentarios de pull request.

Help Command

TIP

Puede usar los siguientes nombres ejecutables.

  • atlantis help
    • atlantis es un nombre ejecutable. Puede configurarlo mediante Executable Name.
  • run help
    • run es un nombre ejecutable global.
  • @GithubUser help
    • @GithubUser es el usuario del host VCS que conectó a Atlantis mediante token de usuario.

Actualmente, Atlantis admite los siguientes comandos.


atlantis help

bash
atlantis help

Explicación

Ver ayuda


atlantis version

bash
atlantis version

Explicación

Imprime la salida de 'terraform version'.


atlantis plan

bash
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

bash
# 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 staging

Opciones

  • -d directory En qué directorio ejecutar plan relativo a la raíz del repo. Use . para la raíz.
    • Ej. atlantis plan -d child/dir
  • -p project Para qué proyecto ejecutar plan. Se refiere al nombre del proyecto configurado en el archivo atlantis.yaml del repo. No puede usarse al mismo tiempo que -d o -w porque el proyecto ya define esto.
  • -w workspace Cambia a este Terraform workspace antes de planificar. El valor predeterminado es default. 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 ~.
  • --verbose Agrega 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.

shell
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

plain
my-terraform-project/
├── main.tf
├── variables.tf
└── env/
    ├── default.tfvars
    ├── staging.tfvars
    └── production.tfvars

Cuando ejecuta:

  • atlantis plan (usa el workspace predeterminado) incluye automáticamente env/default.tfvars
  • atlantis plan -w staging incluye automáticamente env/staging.tfvars
  • atlantis plan -w production incluye automáticamente env/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í:

bash
atlantis plan -- -destroy
atlantis plan -d dir -- -destroy

NOTE

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

bash
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

bash
# 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 staging

Opciones

  • -d directory Aplica el plan para este directorio, relativo a la raíz del repo. Use . para la raíz.
  • -p project Aplica el plan para este proyecto. Se refiere al nombre del proyecto configurado en el archivo atlantis.yaml del repo. No puede usarse al mismo tiempo que -d o -w.
  • -w workspace Aplica 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-disabled Desactiva automerge para este comando apply.
  • --auto-merge-method method Especifica qué merge method usar para el comando apply si automerge está habilitado. Implementado solo para GitHub.
  • --verbose Agrega 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

bash
atlantis cancel

Explicació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

bash
# An apply is currently running, and another is queued.
# This command will cancel the queued apply but not the running one.
atlantis cancel

atlantis import

bash
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

bash
# 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 ID

TIP

  • Al importar recursos for_each, se requiere una dirección entre comillas simples.
    • ej. atlantis import 'aws_instance.example["foo"]' i-1234567890abcdef0

Opciones

  • -d directory Importa un recurso para este directorio, relativo a la raíz del repo. Use . para la raíz.
  • -p project Importa un recurso para este proyecto. Se refiere al nombre del proyecto configurado en el archivo de configuración del repo atlantis.yaml. Esto no puede usarse al mismo tiempo que -d o -w.
  • -w workspace Importa 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.

shell
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

bash
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

bash
# 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 ADDRESS

TIP

  • Al ejecutar state rm en recursos for_each, se requiere una dirección entre comillas simples.
    • ej. atlantis state rm 'aws_instance.example["foo"]'

Opciones

  • -d directory Ejecuta state rm para un recurso en este directorio, relativo a la raíz del repo. Use . para la raíz.
  • -p project Ejecuta state rm para un recurso en este proyecto. Se refiere al nombre del proyecto configurado en el archivo de configuración del repo atlantis.yaml. Esto no puede usarse al mismo tiempo que -d o -w.
  • -w workspace Ejecuta 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.

shell
atlantis state -d dir rm 'aws_instance.example["foo"]' -- -lock=false

Si es necesario que un flag se agregue siempre, vea Custom Workflow Use Cases.


atlantis unlock

bash
atlantis unlock

Explicació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

bash
atlantis approve_policies

Explicación

Aprueba todas las fallas actuales de policy checking para el PR.

Vea también policy checking.

Opciones

  • --verbose Agrega 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.

Copyright Atlantis a Series of LF Projects, LLC. Para los términos de uso del sitio web, la política de marcas y otras políticas del proyecto, consulta LF Projects, LLC Policies.