troykinsella.concourse
ansible-concourse
Un rol de Ansible para gestionar Concourse CI.
Alcance
Este rol comprende cómo gestionar una instalación del servicio web de Concourse CI (ATC/TSA) o un trabajo.
Consume:
- (Opcional) Crea un usuario y grupo
concourse
para ejecutar el proceso del daemon. - (Opcional) Formatea y monta un volumen donde se realiza el trabajo de Concourse.
- Instala un servicio
systemd
llamadoconcourse-web
y/oconcourse-worker
. - Descarga el archivo comprimido binario de Concourse desde el sitio oficial.
- Crea un script envoltorio que captura las opciones pasadas al ejecutable binario.
- Instala los archivos de clave ssh necesarios, proporcionados a través de variables.
No hace:
- Generar pares de claves ssh.
- Gestionar la base de datos Postgres.
- Gestionar ninguna infraestructura en la nube.
Instalación
ansible-galaxy install troykinsella.concourse
Ramas
master
: Concourse 7.x (7.1.0)support/6.x
: Concourse 6.xsupport/5.x
: Concourse 5.xsupport/4.x
: Concourse 4.xsupport/3.x
: Concourse 3.x
Nota: Concourse realiza cambios incompatibles hacia atrás en las opciones de comandos dentro de versiones principales, por lo que estas ramas probablemente no soporten revisiones menores o de parches tempranas de una versión mayor. La última versión utilizada en pruebas se muestra entre corchetes.
Variables del Rol
Consulta defaults/main.yml
para valores predeterminados no especificados a continuación. Muchas de estas variables se corresponden lógicamente con las opciones suministradas al binario de concourse al momento del lanzamiento. Ejecuta concourse web -h
o concourse worker -h
para más detalles.
Nota: La gran mayoría de las variables tienen valores predeterminados razonables y normalmente no necesitan ser definidas, pero existen para cuando se necesita control sobre el comportamiento relacionado. Consulta ejemplos para un conjunto de configuración mínima.
Variables de Mantenimiento
concourse_force_restart
: Opcional. Predeterminado: "no". Activa un reinicio de los servicios web y/o worker independientemente de si la configuración ha cambiado.
Variables de Usuario
concourse_manage_user
: Opcional. Predeterminado: "sí". Gestiona el usuario del sistema al que se le asigna la propiedad de los archivos.concourse_user
: Opcional. El usuario que será propietario del directorio de instalación de Concourse y del proceso en ejecución.concourse_uid
: Opcional. El ID del usuario.concourse_group
: Opcional. El grupo que será propietario del directorio de instalación de Concourse y del proceso en ejecución.concourse_gid
: Opcional. El ID del grupo.
Variables de Instalación
concourse_version
: Opcional. La versión de Concourse a instalar.concourse_install_prefix_dir
: Opcional. El directorio prefijo bajo el cual se colocará el directorio de instalación de Concourse. El archivo comprimido de Concourse también se descarga en este directorio durante la instalación.concourse_install_dir
: Opcional. La ruta del directorio en el que se extraerá el archivo comprimido de Concourse.concourse_binary_path
: Opcional. La ruta absoluta al binario de Concourse.concourse_bin_dir
: Opcional. Un directorio en el que residirá el binario de Concourse y los scripts relacionados.concourse_etc_dir
: Opcional. Un directorio en el que se crearán archivos generados o gestionados relacionados con Concourse.concourse_archive_name
: Opcional. El nombre del archivo del tarball de la versión de Concourse a instalar.concourse_archive_url
: Opcional. La URL desde la cual se puede descargar el tarball de la versión de Concourse.concourse_archive_checksum
: Opcional. El checksum del tarball de la versión de Concourse utilizado para validar el archivo descargado.concourse_archive_os
: Opcional. El sistema operativo para el cual se obtendrá el tarball de la versión de Concourse.concourse_archive_arch
: Opcional. La arquitectura del sistema para la cual se obtendrá el tarball de la versión de Concourse.concourse_archive_fetch_timeout
: Opcional. El tiempo de espera en segundos para obtener el tarball de la versión de Concourse.concourse_archive_delete_after_unarchive
: Opcional. Predeterminado: "sí". Elimina el tarball de la versión después de que se descomprima.concourse_binary_mode
: Opcional. El modo de archivo del binario de Concourse.concourse_etc_files_mode
: Opcional. El modo de archivo de todos los archivos almacenados enconcourse_etc_dir
.
Variables Comunes
concourse_service_enabled
: Opcional. Predeterminado: "sí". Gestiona un serviciosystemd
para una instanciaweb
y/oworker
de Concourse.concourse_service_start
: Opcional. Predeterminado: "sí". Inicia el/los servicio(s)systemd
para Concourseweb
y/oworker
.concourse_log_level
: Opcional. El nivel mínimo de logs para ver. [debug|info|error|fatal]concourse_env_file
: Opcional. Un archivo que contiene variables de entorno que se alimentan en el atributoEnvironmentFile
del archivo de unidad del serviciosystemd
. Esto es útil para configuraciones gestionadas fuera del playbook. Si la configuración debe ser gestionada por el playbook,concourse_web_env
y/oconcourse_worker_env
es la mejor opción.
Variables de Web
concourse_web
: Opcional. Establecer en "sí" para instalar el Concourse ATC.concourse_bind_ip
: Opcional. La dirección IP en la que escuchar tráfico web.concourse_bind_port
: Opcional. El puerto en el que escuchar tráfico HTTP.concourse_tls_bind_port
: Opcional. El puerto en el que escuchar tráfico HTTPS.concourse_tls_certificate
: Opcional. El contenido del certificado TLS que se utilizará para la terminación HTTPS.concourse_tls_certificate_path
: Opcional. La ruta del archivo remoto del certificado TLS que se utilizará para la terminación HTTPS. Normalmente, solo se necesita definirconcourse_tls_certificate
.concourse_tls_key
: Opcional. El contenido de la clave TLS que se utilizará para la terminación HTTPS.concourse_tls_key_path
: Opcional. La ruta del archivo remoto de la clave TLS que se utilizará para la terminación HTTPS. Normalmente, solo se necesita definirconcourse_tls_key
.concourse_peer_address
: Opcional. La URL a la que se puede acceder a este ATC desde otros ATC en el clúster.concourse_external_url
: Opcional. La URL a la que se puede acceder a cualquier ATC desde el exterior.concourse_web_launcher_path
: Opcional. La ruta al script que lanza el proceso web de Concourse.concourse_web_launcher_mode
: Opcional. El modo de archivo del script lanzador web.concourse_cli_artifacts_dir
: Opcional. El valor de la opción--cli-artifacts-dir
.concourse_authorized_worker_keys_path
: Opcional. La ruta al archivo de claves de los trabajadores autorizados.concourse_host_key_path
: Opcional. La ruta al archivo de clave de host.concourse_session_signing_key
: Necesaria. La clave de firma de la sesión.concourse_session_signing_key_path
: Opcional. La ruta al archivo de clave de firma de sesión.concourse_encryption_key
: Opcional. Una clave de 16 o 32 caracteres utilizada para cifrar datos sensibles antes de almacenarlos en la base de datos.concourse_old_encryption_key
: Opcional. Una clave de cifrado utilizada anteriormente. Si se proporciona sin una nueva clave, los datos se cifran. Si se proporciona con una nueva clave, los datos se vuelven a cifrar.concourse_host_key
: Necesaria. La clave de host.concourse_authorized_worker_keys
: Necesaria. Claves de los trabajadores autorizados concatenadas.concourse_auth_duration
: Opcional. La duración durante la cual los tokens son válidos.concourse_resource_checking_interval
: Opcional. Intervalo en el que se verifica si hay nuevas versiones de recursos.concourse_base_resource_type_defaults
: Opcional. Un hash de valores predeterminados a nivel de clúster para tipos de recursos.concourse_base_resource_type_defaults_file
: Opcional. La ruta al archivo de valores predeterminados de tipo de recurso.concourse_web_options
: Opcional. Otras opciones no gestionadas para pasar aconcourse
.concourse_web_env
: Opcional. Un hash de variables de entorno disponibles para el procesoconcourse web
.
Variables de PostgreSQL de Web
concourse_postgres_host
: Opcional. El host de Postgres al que conectarse.concourse_postgres_port
: Opcional. El puerto de Postgres al que conectarse.concourse_postgres_socket
: Opcional. La ruta a un socket de dominio Unix para conectarse.concourse_postgres_user
: Opcional. El usuario de Postgres para iniciar sesión.concourse_postgres_password
: Opcional. La contraseña del usuario de Postgres.concourse_postgres_ssl_mode
: Opcional. Si se debe utilizar SSL con la conexión de Postgres.concourse_postgres_ca_cert
: Opcional. La ubicación del archivo de certificado CA de Postgres.concourse_postgres_client_cert
: Opcional. La ubicación del archivo de certificado del cliente de Postgres.concourse_postgres_client_key
: Opcional. La ubicación del archivo de clave del cliente de Postgres.concourse_postgres_connect_timeout
: Opcional. El tiempo de espera de conexión de Postgres.concourse_postgres_database
: Opcional. El nombre de la base de datos de Postgres.
Variables de Autenticación Local de Web
concourse_local_users
: Opcional. Una lista de credenciales de usuarios de concourse que se añaden como usuarios locales. Las entradas son objetos que tienen camposname
ypassword
(ver ejemplo). Las contraseñas pueden ser texto plano o bcrypted.concourse_main_team_local_users
: Opcional. Lista de usuarios locales de concourse en la lista de usuarios locales suministrada que están en la lista blanca.
Variables de Autenticación de GitHub de Web
concourse_github_client_id
: Opcional. ID de cliente de GitHub.concourse_github_client_secret
: Opcional. Secreto de cliente de GitHub.concourse_main_team_github_users
: Opcional. Lista de usuarios de GitHub en la lista blanca.concourse_main_team_github_orgs
: Opcional. Lista de organizaciones de GitHub en la lista blanca.concourse_main_team_github_teams
: Opcional. Lista de equipos de GitHub en la lista blanca formateada como "org:team".
Otras Variables de Métodos de Autenticación de Web
No soportado. Hazlo tú mismo proporcionando opciones de comando concourse web
con la variable concourse_web_options
.
Variables de Trabajador
concourse_worker
: Opcional. Establecer en "sí" para instalar un trabajador de Concourse.concourse_worker_launcher_path
: Opcional. La ruta al script que lanza el proceso del trabajador de Concourse.concourse_worker_land_path
: Opcional. La ruta al script que aterriza un trabajador.concourse_worker_retire_path
: Opcional. La ruta al script que retira un trabajador.concourse_worker_binary_mode
: Opcional. El modo de archivo de los scripts de lanzador, aterrizaje y retiro del trabajador.concourse_worker_land_on_stop
: Opcional. Predeterminado: "no". Ejecutaconcourse land-worker
al detener el servicio.concourse_worker_retire_on_stop
: Opcional. Predeterminado: "sí". Ejecutaconcourse retire-worker
al detener el servicio.concourse_work_dir
: Opcional. El directorio en el que el trabajador realiza su trabajo.concourse_tsa_public_key_path
: Opcional. La ruta al archivo de clave pública tsa.concourse_tsa_worker_key_path
: Opcional. La ruta al archivo de clave privada del trabajador.concourse_tsa_host
: Necesaria. El valor de la opción--tsa-host
.concourse_tsa_public_key
: Necesaria. La clave pública tsa.concourse_tsa_worker_key
: Necesaria. La clave privada del trabajador tsa.concourse_worker_tag
: Opcional. El valor de la opción--tag
.concourse_baggageclaim_driver
: Opcional. El controlador a utilizar para gestionar volúmenes.concourse_worker_options
: Opcional. Otras opciones no gestionadas para pasar aconcourse
.concourse_worker_env
: Opcional. Un hash de variables de entorno disponibles para el procesoconcourse worker
.concourse_manage_work_volume
: Opcional. Predeterminado: "no". Activa la gestión del volumen de trabajo.concourse_work_volume_device
: Necesaria cuandoconcourse_manage_work_volume
es "sí". El dispositivo que se montará como volumen de trabajo.concourse_work_volume_fs_type
: Opcional. El tipo de sistema de archivos del volumen de trabajo. Por defecto, se calcula comobtrfs
oext4
según el valor deconcourse_baggageclaim_driver
.concourse_work_volume_fs_opts
: Opcional. Una lista de opciones que se pasarán al comando mkfs al crear el sistema de archivos del volumen de trabajo.concourse_work_volume_fs_force_create
: Opcional. Predeterminado: "no". Si es "sí", permite crear un nuevo sistema de archivos de volumen de trabajo en un dispositivo que ya tiene un sistema de archivos.concourse_work_volume_fs_resize
: Opcional. Predeterminado: "no". Si es "sí", si el dispositivo de bloque del volumen de trabajo y el tamaño del sistema de archivos difieren, agranda el sistema de archivos en el espacio.concourse_work_volume_mount_path
: Opcional. El directorio en el que se montará el volumen de trabajo.concourse_work_volume_mount_opts
: Opcional. Opciones para montar el volumen de trabajo.
Ejemplo de Playbook
- hosts: atc
roles:
- role: troykinsella.concourse
concourse_web: yes
concourse_authorized_worker_keys:
- "{{ worker_public_key }}"
concourse_postgres_host: concoursedb.abc123.us-east-1.rds.amazonaws.com
concourse_postgres_user: concourse
concourse_postgres_password: changeme
concourse_postgres_database: atc
concourse_local_users:
- name: admin
password: my_bcrypted_password
concourse_main_team_local_users:
- admin
concourse_external_url: http://concourse.example.com
- hosts: workers
roles:
- role: troykinsella.concourse
concourse_worker: yes
concourse_tsa_host: my-atc
concourse_tsa_public_key: "{{ host_pub_key }}"
concourse_tsa_worker_key: "{{ worker_key }}"
concourse_worker_env:
CONCOURSE_GARDEN_NETWORK_POOL: 10.254.0.0/16
CONCOURSE_GARDEN_MAX_CONTAINERS: 512
CONCOURSE_GARDEN_DOCKER_REGISTRY: https://docker.my-private-registry.org
Pruebas
Requisitos previos:
- Instalar Docker
Para ejecutar pruebas de serverspec:
docker build .
Contribuyentes
- gaelL
- troykinsella (Mantenedor)
Licencia
MIT © Troy Kinsella
ansible-galaxy install troykinsella.concourse