Pruebas localmente
Estas instrucciones son para ejecutar Atlantis localmente en tu propia computadora para que puedas probarlo con tus propios repositorios antes de decidir si instalarlo de forma más permanente.
TIP
Si quieres configurar una instalación de Atlantis lista para producción, lee Deployment.
Pasos:
Instalar Terraform
terraform debe estar en el $PATH para Atlantis. Descarga desde Terraform
unzip path/to/terraform_*.zip -d /usr/local/binDescargar Atlantis
Obtén la versión más reciente desde GitHub y descomprímela.
Descargar Ngrok
Atlantis necesita ser accesible en algún lugar al que github.com/gitlab.com/bitbucket.org o tu instalación de GitHub/GitLab Enterprise puedan llegar. Una manera de lograr esto es con ngrok, una herramienta que reenvía tu puerto local a un hostname público aleatorio.
Download ngrok y unzip.
Inicia ngrok en el puerto 4141 y toma nota del hostname que te da:
./ngrok http 4141En una pestaña nueva (donde pronto iniciarás Atlantis) crea una variable de entorno con el hostname de ngrok:
URL="https://{YOUR_HOSTNAME}.ngrok.io"Crear un Webhook Secret
GitHub y GitLab usan webhook secrets para que los clientes puedan verificar que los webhooks provienen de ellos.
Crea una cadena aleatoria de cualquier longitud (puedes usar random.org) y establece una variable de entorno:
SECRET="{YOUR_RANDOM_STRING}"Agregar webhook
Toma la URL que ngrok mostró y crea un webhook en tu repo de GitHub, GitLab o Bitbucket:
Webhook de GitHub o GitHub Enterprise
Expand
- Ve a la configuración de tu repo
- Selecciona Webhooks o Hooks en la barra lateral
- Haz clic en Add webhook
- establece Payload URL en tu URL de ngrok con
/eventsal final. Ej.https://c5004d84.ngrok.io/events - verifica de nuevo que agregaste
/eventsal final de tu URL. - establece Content type en
application/json - establece Secret en tu cadena aleatoria
- selecciona Let me select individual events
- marca las casillas
- Pull request reviews
- Pushes
- Issue comments
- Pull requests
- deja Active marcado
- haz clic en Add webhook
Webhook de GitLab o GitLab Enterprise
Expand
- Ve a la página principal de tu repo
- Haz clic en Settings > Webhooks en la barra lateral
- establece URL en tu URL de ngrok con
/eventsal final. Ej.https://c5004d84.ngrok.io/events - verifica de nuevo que agregaste
/eventsal final de tu URL. - establece Secret Token en tu cadena aleatoria
- marca las casillas
- Push events
- Comments
- Merge Request events
- deja Enable SSL verification marcado
- haz clic en Add webhook
Webhook de Bitbucket Cloud (bitbucket.org)
Expand
- Ve a la página principal de tu repo
- Haz clic en Settings en la barra lateral
- Haz clic en Webhooks bajo la sección WORKFLOW
- Haz clic en Add webhook
- Ingresa "Atlantis" para Title
- Establece URL en tu URL de ngrok con
/eventsal final. Ej.https://c5004d84.ngrok.io/events - Verifica de nuevo que agregaste
/eventsal final de tu URL. - Mantén Status como Active
- No marques Skip certificate validation porque NGROK tiene un cert válido.
- Selecciona Choose from a full list of triggers
- Bajo Repositoryunmarca todo
- Bajo Issues deja todo unmarcado
- Bajo Pull Request, selecciona: Created, Updated, Merged, Declined y Comment created
- Haz clic en Save

Webhook de Bitbucket Server (también conocido como Stash)
Expand
- Ve a la página principal de tu repo
- Haz clic en Settings en la barra lateral
- Haz clic en Webhooks bajo la sección WORKFLOW
- Haz clic en Create webhook
- Ingresa "Atlantis" para Name
- Establece URL en tu URL de ngrok con
/eventsal final. Ej.https://c5004d84.ngrok.io/events - Verifica de nuevo que agregaste
/eventsal final de tu URL. - Establece Secret en tu cadena aleatoria
- Bajo Pull Request, selecciona: Opened, Source branch updated, Merged, Declined, Deleted y Comment added
- Haz clic en Save

Webhook de Gitea
Expand
- Haz clic en Settings > Webhooks en la barra superior y luego en la barra lateral
- Haz clic en Add webhook > Gitea (los webhooks de Gitea son específicos del servicio, pero esto funciona)
- establece Target URL en
http://$URL/events(ohttps://$URL/eventssi estás usando SSL) donde$URLes donde Atlantis está alojado. Asegúrate de agregar/events - verifica de nuevo que agregaste
/eventsal final de tu URL. - establece Secret en el Webhook Secret que generaste previamente
- NOTE Si estás agregando un webhook a múltiples repositorios, cada repositorio necesitará usar el mismo secret.
- Selecciona Custom Events...
- Marca las casillas
- Repository events > Push
- Issue events > Issue Comment
- Pull Request events > Pull Request
- Pull Request events > Pull Request Comment
- Pull Request events > Pull Request Reviewed
- Pull Request events > Pull Request Synchronized
- Deja Active marcado
- Haz clic en Add Webhook
- Consulta Next Steps
Crear un access token para Atlantis
Recomendamos usar un usuario de CI dedicado o crear un nuevo usuario llamado @atlantis que realice todas las acciones de API, sin embargo, para pruebas, puedes usar tu propio usuario. Aquí crearemos el access token que Atlantis usa para comentar en el pull request y establecer estados de commit.
Access Token de GitHub o GitHub Enterprise
- Crea un Personal Access Token
- crea un token con alcance repo
- establece el token como una variable de entorno
TOKEN="{YOUR_TOKEN}"Access Token de GitLab o GitLab Enterprise
- sigue GitLab: Create a personal access token
- crea un token con alcance api
- establece el token como una variable de entorno
TOKEN="{YOUR_TOKEN}"Access Token de Bitbucket Cloud (bitbucket.org)
- sigue BitBucket Cloud: Create an app password
- Etiqueta la contraseña como "atlantis"
- Selecciona Pull requests: Read y Write para que Atlantis pueda leer tus pull requests y escribir comentarios en ellos
- establece el token como una variable de entorno
TOKEN="{YOUR_TOKEN}"Access Token de Bitbucket Server (también conocido como Stash)
- Haz clic en tu avatar en la parte superior derecha y selecciona Manage account
- Haz clic en HTTP access tokens en la barra lateral
- Haz clic en Create token
- Nombra el token atlantis
- Dale al token permisos de proyecto Read y permisos de pull request Write
- Elige una opción de Expiry Do not expire o Expire automatically
- Haz clic en Create y establece el token como una variable de entorno
TOKEN="{YOUR_TOKEN}"Access Token de Gitea
- Ve a "Profile and Settings" > "Settings" en Gitea (arriba a la derecha)
- Ve a "Applications" bajo "User Settings" en Gitea
- Crea un token bajo "Manage Access Tokens" con los siguientes permisos:
- issue: Read and Write
- repository: Read and Write
- Guarda el access token
Iniciar Atlantis
Ya casi estás listo para iniciar Atlantis, solo establece dos variables más:
USERNAME="{the username of your GitHub, GitLab or Bitbucket user}"
REPO_ALLOWLIST="$YOUR_GIT_HOST/$YOUR_USERNAME/$YOUR_REPO"
# ex. REPO_ALLOWLIST="github.com/runatlantis/atlantis"
# If you're using Bitbucket Server, $YOUR_GIT_HOST will be the domain name of your
# server without scheme or port and $YOUR_USERNAME will be the name of the **project** the repo
# is under, **not the key** of the project.Ahora puedes iniciar Atlantis. El comando exacto difiere según tu host de Git:
Comando de GitHub
atlantis server \
--atlantis-url="$URL" \
--gh-user="$USERNAME" \
--gh-token="$TOKEN" \
--gh-webhook-secret="$SECRET" \
--repo-allowlist="$REPO_ALLOWLIST"Comando de GitHub Enterprise
HOSTNAME=YOUR_GITHUB_ENTERPRISE_HOSTNAME # ex. github.runatlantis.io
atlantis server \
--atlantis-url="$URL" \
--gh-user="$USERNAME" \
--gh-token="$TOKEN" \
--gh-webhook-secret="$SECRET" \
--gh-hostname="$HOSTNAME" \
--repo-allowlist="$REPO_ALLOWLIST"Comando de GitLab
atlantis server \
--atlantis-url="$URL" \
--gitlab-user="$USERNAME" \
--gitlab-token="$TOKEN" \
--gitlab-webhook-secret="$SECRET" \
--repo-allowlist="$REPO_ALLOWLIST"Comando de GitLab Enterprise
HOSTNAME=YOUR_GITLAB_ENTERPRISE_HOSTNAME # ex. gitlab.runatlantis.io
atlantis server \
--atlantis-url="$URL" \
--gitlab-user="$USERNAME" \
--gitlab-token="$TOKEN" \
--gitlab-webhook-secret="$SECRET" \
--gitlab-hostname="$HOSTNAME" \
--repo-allowlist="$REPO_ALLOWLIST"Comando de Bitbucket Cloud (bitbucket.org)
atlantis server \
--atlantis-url="$URL" \
--bitbucket-user="$USERNAME" \
--bitbucket-token="$TOKEN" \
--repo-allowlist="$REPO_ALLOWLIST"Comando de Bitbucket Server (también conocido como Stash)
BASE_URL=YOUR_BITBUCKET_SERVER_URL # ex. http://bitbucket.mycorp:7990
atlantis server \
--atlantis-url="$URL" \
--bitbucket-user="$USERNAME" \
--bitbucket-token="$TOKEN" \
--bitbucket-webhook-secret="$SECRET" \
--bitbucket-base-url="$BASE_URL" \
--repo-allowlist="$REPO_ALLOWLIST"Azure DevOps
Se requiere un certificado y una clave privada si se usa autenticación Basic para webhooks.
atlantis server \
--atlantis-url="$URL" \
--azuredevops-user="$USERNAME" \
--azuredevops-token="$TOKEN" \
--azuredevops-webhook-user="$ATLANTIS_AZUREDEVOPS_WEBHOOK_USER" \
--azuredevops-webhook-password="$ATLANTIS_AZUREDEVOPS_WEBHOOK_PASSWORD" \
--repo-allowlist="$REPO_ALLOWLIST"
--ssl-cert-file=file.crt
--ssl-key-file=file.keyGitea
atlantis server \
--atlantis-url="$URL" \
--gitea-user="$ATLANTIS_GITEA_USER" \
--gitea-token="$ATLANTIS_GITEA_TOKEN" \
--gitea-webhook-secret="$ATLANTIS_GITEA_WEBHOOK_SECRET" \
--gitea-base-url="$ATLANTIS_GITEA_BASE_URL" \
--gitea-page-size="$ATLANTIS_GITEA_PAGE_SIZE" \
--repo-allowlist="$REPO_ALLOWLIST"
--ssl-cert-file=file.crt
--ssl-key-file=file.keyCrear un pull request
Crea un pull request para que puedas probar Atlantis.
TIP
Podrías agregar un recurso null como prueba:
resource "null_resource" "example" {}O simplemente modifica los espacios en blanco en un archivo.
Autoplan
Deberías ver a Atlantis registrando que recibió el webhook y deberías ver la salida de terraform plan en tu repo.
Atlantis intenta averiguar el directorio en el que hacer plan según los archivos modificados. Si necesitas personalizar los directorios en los que Atlantis se ejecuta o los comandos que ejecuta si estás usando workspaces o archivos .tfvars, consulta atlantis.yaml Reference.
Plan manual
Para ejecutar manualmente plan en un directorio o workspace específico, comenta en el pull request usando las flags -d o -w:
atlantis plan -d mydir
atlantis plan -w stagingPara agregar argumentos adicionales al terraform plan subyacente puedes usar:
atlantis plan -- -target=resource -var 'foo=bar'Apply
Si quieres ejecutar apply, escribe un comentario: atlantis apply. Puedes usar las flags -d o -w para apuntar Atlantis a un plan específico. De lo contrario intenta aplicar el plan para el directorio raíz.
Logs en tiempo real
La salida de terraform en tiempo real para tu comando se puede encontrar haciendo clic en la verificación de estado para un proyecto dado en un PR, que enlaza con la UI de transmisión de logs. Esta es una UI de terminal donde puedes ver tus comandos ejecutándose en tiempo real.
Próximos pasos
- Si las cosas están funcionando como se espera puedes
Ctrl-Cel comandoatlantis servery el comandongrok. - Con suerte Atlantis está funcionando con tu repo y estás listo para continuar con un deployment listo para producción.
- Si no está funcionando como se espera, puede que necesites personalizar cómo se ejecuta Atlantis con un archivo
atlantis.yaml. Consulta casos de uso de atlantis.yaml. - Revisa nuestra documentación completa para más detalles.