troykinsella.concourse

ansible-concourse

Estado de Construcción

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 llamado concourse-web y/o concourse-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.x
  • support/5.x: Concourse 5.x
  • support/4.x: Concourse 4.x
  • support/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 en concourse_etc_dir.

Variables Comunes

  • concourse_service_enabled: Opcional. Predeterminado: "sí". Gestiona un servicio systemd para una instancia web y/o worker de Concourse.
  • concourse_service_start: Opcional. Predeterminado: "sí". Inicia el/los servicio(s) systemd para Concourse web y/o worker.
  • 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 atributo EnvironmentFile del archivo de unidad del servicio systemd. Esto es útil para configuraciones gestionadas fuera del playbook. Si la configuración debe ser gestionada por el playbook, concourse_web_env y/o concourse_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 definir concourse_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 definir concourse_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 a concourse.
  • concourse_web_env: Opcional. Un hash de variables de entorno disponibles para el proceso concourse 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 campos name y password (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". Ejecuta concourse land-worker al detener el servicio.
  • concourse_worker_retire_on_stop: Opcional. Predeterminado: "sí". Ejecuta concourse 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 a concourse.
  • concourse_worker_env: Opcional. Un hash de variables de entorno disponibles para el proceso concourse worker.
  • concourse_manage_work_volume: Opcional. Predeterminado: "no". Activa la gestión del volumen de trabajo.
  • concourse_work_volume_device: Necesaria cuando concourse_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 como btrfs o ext4 según el valor de concourse_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

Licencia

MIT © Troy Kinsella

Acerca del proyecto

Concourse CI. CI that scales with your project.

Instalar
ansible-galaxy install troykinsella.concourse
Licencia
mit
Descargas
77.2k
Propietario
Staff Solutions Architect at @collectivei.