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
concoursepara ejecutar el proceso del daemon. - (Opcional) Formatea y monta un volumen donde se realiza el trabajo de Concourse.
- Instala un servicio
systemdllamadoconcourse-weby/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 serviciosystemdpara una instanciaweby/oworkerde Concourse.concourse_service_start: Opcional. Predeterminado: "sí". Inicia el/los servicio(s)systemdpara Concourseweby/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 atributoEnvironmentFiledel 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_envy/oconcourse_worker_enves 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 camposnameypassword(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-workeral detener el servicio.concourse_worker_retire_on_stop: Opcional. Predeterminado: "sí". Ejecutaconcourse retire-workeral 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_volumees "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 comobtrfsoext4segú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