troykinsella.concourse

ansible-concourse

Statut de construction

Un rôle Ansible pour gérer Concourse CI.

Portée

Ce rôle comprend comment gérer une installation de service web Concourse CI (ATC/TSA) ou de travailleur.

Il :

  • (Facultatif) crée un utilisateur et un groupe concourse pour faire fonctionner le processus de démon.
  • (Facultatif) formate et monte un volume dans lequel le travail de Concourse est effectué.
  • Installe un service systemd appelé concourse-web et/ou concourse-worker.
  • Télécharge l'archive binaire de Concourse depuis le site officiel.
  • Crée un script d'enveloppe qui capture les options passées au binaire exécutable.
  • Installe les fichiers de clé ssh nécessaires, fournis via des variables.

Il ne :

  • Génère pas de paires de clés ssh.
  • Ne gère pas la base de données Postgres.
  • Ne gère pas d'infrastructure cloud.

Installation

ansible-galaxy install troykinsella.concourse

Branches

  • 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

Remarque : Concourse apporte des modifications d'options de commande non rétrocompatibles au sein des versions majeures, donc ces branches ne prendront probablement pas en charge les révisions mineures ou les corrections de bug des versions majeures antérieures. La dernière version utilisée pour les tests est indiquée entre parenthèses.

Variables du rôle

Voir defaults/main.yml pour les valeurs par défaut non spécifiées ci-dessous. Beaucoup de ces variables se rapportent sensiblement aux options fournies au binaire de Concourse au moment du lancement. Exécutez concourse web -h ou concourse worker -h pour plus de détails.

Remarque : La grande majorité des variables ont des valeurs par défaut raisonnables et n'ont normalement pas besoin d'être définies, mais existent pour lorsque le contrôle sur le comportement connexe est nécessaire. Voir les exemples pour un ensemble de configuration minimale.

Variables de maintenance

  • concourse_force_restart: Facultatif. Par défaut : "non". Déclenche un redémarrage des services web et/ou travailleurs, qu'il y ait ou non un changement de configuration.

Variables utilisateur

  • concourse_manage_user: Facultatif. Par défaut : "oui". Gère l'utilisateur système auquel la propriété des fichiers est assignée.
  • concourse_user: Facultatif. L'utilisateur qui possédera le répertoire d'installation de Concourse et le processus en cours d'exécution.
  • concourse_uid: Facultatif. L'ID de l'utilisateur.
  • concourse_group: Facultatif. Le groupe qui possédera le répertoire d'installation de Concourse et le processus en cours d'exécution.
  • concourse_gid: Facultatif. L'ID du groupe.

Variables d'installation

  • concourse_version: Facultatif. La version de Concourse à installer.
  • concourse_install_prefix_dir: Obligatoire. Le répertoire de préfixe sous lequel le répertoire d'installation de Concourse sera placé. L'archive de Concourse est également téléchargée dans ce répertoire lors de l'installation.
  • concourse_install_dir: Facultatif. Le chemin d'accès au répertoire dans lequel l'archive de Concourse est extraite.
  • concourse_binary_path: Facultatif. Le chemin absolu vers le binaire de Concourse.
  • concourse_bin_dir: Facultatif. Un répertoire dans lequel se trouvent le binaire de Concourse et les scripts shell associés.
  • concourse_etc_dir: Facultatif. Un répertoire dans lequel sont créés les fichiers générés ou gérés liés à Concourse.
  • concourse_archive_name: Facultatif. Le nom de fichier de l'archive de publication de Concourse à installer.
  • concourse_archive_url: Facultatif. L'URL à partir de laquelle l'archive de publication de Concourse peut être téléchargée.
  • concourse_archive_checksum: Facultatif. Le checksum de l'archive de publication de Concourse utilisé pour valider l'archive téléchargée.
  • concourse_archive_os: Facultatif. Le système d'exploitation pour lequel l'archive de publication de Concourse doit être récupérée.
  • concourse_archive_arch: Facultatif. L'architecture système pour laquelle l'archive de publication de Concourse doit être récupérée.
  • concourse_archive_fetch_timeout: Facultatif. Le temps d'attente en secondes pour récupérer l'archive de publication de Concourse.
  • concourse_archive_delete_after_unarchive: Facultatif. Par défaut : "oui". Supprime l'archive de publication après son extraction.
  • concourse_binary_mode: Facultatif. Le mode de fichier du binaire de Concourse.
  • concourse_etc_files_mode: Facultatif. Le mode de fichier de tous les fichiers stockés dans concourse_etc_dir.

Variables communes

  • concourse_service_enabled: Facultatif. Par défaut : "oui". Gère un service systemd pour une instance Concourse web et/ou worker.
  • concourse_service_start: Facultatif. Par défaut : "oui". Démarre le(s) service(s) systemd pour Concourse web et/ou worker.
  • concourse_log_level: Facultatif. Le niveau minimum de logs à afficher. [debug|info|erreur|fatal]
  • concourse_env_file: Facultatif. Un fichier contenant des variables d'environnement qui est alimenté dans l'attribut EnvironmentFile du fichier d'unité de service systemd. Cela est utile pour une configuration gérée en dehors du playbook. Si la configuration doit être gérée par le playbook, concourse_web_env et/ou concourse_worker_env est le meilleur choix.

Variables web

  • concourse_web: Facultatif. Définir sur "oui" pour installer le Concourse ATC.
  • concourse_bind_ip: Facultatif. L'adresse IP sur laquelle écouter le trafic web.
  • concourse_bind_port: Facultatif. Le port sur lequel écouter le trafic HTTP.
  • concourse_tls_bind_port: Facultatif. Le port sur lequel écouter le trafic HTTPS.
  • concourse_tls_certificate: Facultatif. Le contenu du certificat TLS à utiliser pour la terminaison HTTPS.
  • concourse_tls_certificate_path: Facultatif. Le chemin d'accès au fichier du certificat TLS à utiliser pour la terminaison HTTPS. Normalement, seul concourse_tls_certificate doit être défini.
  • concourse_tls_key: Facultatif. Facultatif. Le contenu de la clé TLS à utiliser pour la terminaison HTTPS.
  • concourse_tls_key_path: Facultatif. Le chemin d'accès au fichier de la clé TLS à utiliser pour la terminaison HTTPS. Normalement, seule concourse_tls_key doit être définie.
  • concourse_peer_address: Facultatif. L'URL par laquelle cet ATC peut être atteint depuis d'autres ATCs dans le cluster.
  • concourse_external_url: Facultatif. L'URL par laquelle n'importe quel ATC peut être atteint de l'extérieur.
  • concourse_web_launcher_path: Facultatif. Le chemin vers le script qui lance le processus web de Concourse.
  • concourse_web_launcher_mode: Facultatif. Le mode de fichier du script de lancement web.
  • concourse_cli_artifacts_dir: Facultatif. La valeur de l'option --cli-artifacts-dir.
  • concourse_authorized_worker_keys_path: Facultatif. Le chemin vers le fichier des clés de travailleur autorisées.
  • concourse_host_key_path: Facultatif. Le chemin vers le fichier de clé hôte.
  • concourse_session_signing_key: Requis. La clé de signature de session.
  • concourse_session_signing_key_path: Facultatif. Le chemin vers le fichier de clé de signature de session.
  • concourse_encryption_key: Facultatif. Une clé de 16 ou 32 caractères utilisée pour chiffrer des données sensibles avant de les stocker dans la base de données.
  • concourse_old_encryption_key: Facultatif. Une clé de chiffrement utilisée précédemment. Si elle est fournie sans une nouvelle clé, les données sont chiffrées. Si elle est fournie avec une nouvelle clé, les données sont re-chiffrées.
  • concourse_host_key: Requis. La clé hôte.
  • concourse_authorized_worker_keys: Requis. Les clés de travailleur autorisées concaténées.
  • concourse_auth_duration: Facultatif. La durée pendant laquelle les jetons sont valables.
  • concourse_resource_checking_interval: Facultatif. Intervalle pour vérifier les nouvelles versions des ressources.
  • concourse_base_resource_type_defaults: Facultatif. Un hash des valeurs par défaut pour les types de ressources à l'échelle du cluster.
  • concourse_base_resource_type_defaults_file: Facultatif. Le chemin vers le fichier des valeurs par défaut des types de ressources.
  • concourse_web_options: Facultatif. Autres options non gérées à passer à concourse.
  • concourse_web_env: Facultatif. Un hash de variables d'environnement mis à disposition du processus concourse web.

Variables PostgreSQL Web

  • concourse_postgres_host: Facultatif. L'hôte Postgres auquel se connecter.
  • concourse_postgres_port: Facultatif. Le port Postgres auquel se connecter.
  • concourse_postgres_socket: Facultatif. Le chemin vers un socket de domaine Unix auquel se connecter.
  • concourse_postgres_user: Facultatif. L'utilisateur Postgres à utiliser pour se connecter.
  • concourse_postgres_password: Facultatif. Le mot de passe de l'utilisateur Postgres.
  • concourse_postgres_ssl_mode: Facultatif. S'il faut ou non utiliser SSL avec la connexion Postgres.
  • concourse_postgres_ca_cert: Facultatif. L'emplacement du fichier de certificat CA Postgres.
  • concourse_postgres_client_cert: Facultatif. L'emplacement du fichier de certificat client Postgres.
  • concourse_postgres_client_key: Facultatif. L'emplacement du fichier de clé client Postgres.
  • concourse_postgres_connect_timeout: Facultatif. Le délai d'attente de composition pour Postgres.
  • concourse_postgres_database: Facultatif. Le nom de la base de données Postgres.

Variables d'authentification locale Web

  • concourse_local_users: Facultatif. Une liste des identifiants utilisateur concourse ajoutés en tant qu'utilisateurs locaux. Les entrées sont des objets contenant des champs nom et mot de passe (voir exemple). Les mots de passe peuvent être en texte brut ou encryptés.
  • concourse_main_team_local_users: Facultatif. Liste des utilisateurs locaux de concourse de la liste fournie autorisés.

Variables d'authentification GitHub Web

  • concourse_github_client_id: Facultatif. ID client GitHub.
  • concourse_github_client_secret: Facultatif. Secret client GitHub.
  • concourse_main_team_github_users: Facultatif. Liste des utilisateurs GitHub autorisés.
  • concourse_main_team_github_orgs: Facultatif. Liste des organisations GitHub autorisées.
  • concourse_main_team_github_teams: Facultatif. Liste des équipes GitHub autorisées formatées comme "org:team".

Autres méthodes d'authentification Web

Non pris en charge. Faites-le vous-même en fournissant des options de commande concourse web avec la variable concourse_web_options.

Variables de travailleur

  • concourse_worker: Facultatif. Définir sur "oui" pour installer un travailleur Concourse.
  • concourse_worker_launcher_path: Facultatif. Le chemin vers le script qui lance le processus de travailleur Concourse.
  • concourse_worker_land_path: Facultatif. Le chemin vers le script qui dépose un travailleur.
  • concourse_worker_retire_path: Facultatif. Le chemin vers le script qui met un travailleur à la retraite.
  • concourse_worker_binary_mode: Facultatif. Le mode de fichier des scripts de lancement, dépôt et retrait du travailleur.
  • concourse_worker_land_on_stop: Facultatif. Par défaut : "non". Exécute concourse land-worker lors de l'arrêt du service.
  • concourse_worker_retire_on_stop: Facultatif. Par défaut : "oui". Exécute concourse retire-worker lors de l'arrêt du service.
  • concourse_work_dir: Facultatif. Le répertoire dans lequel le travailleur effectue son travail.
  • concourse_tsa_public_key_path: Facultatif. Le chemin vers le fichier de clé publique tsa.
  • concourse_tsa_worker_key_path: Facultatif. Le chemin vers le fichier de clé privée du travailleur.
  • concourse_tsa_host: Requis. La valeur de l'option --tsa-host.
  • concourse_tsa_public_key: Requis. La clé publique tsa.
  • concourse_tsa_worker_key: Requis. La clé privée du travailleur tsa.
  • concourse_worker_tag: Facultatif. La valeur de l'option --tag.
  • concourse_baggageclaim_driver: Facultatif. Le pilote à utiliser pour gérer les volumes.
  • concourse_worker_options: Facultatif. Autres options non gérées à passer à concourse.
  • concourse_worker_env: Facultatif. Un hash de variables d'environnement mises à disposition du processus concourse worker.
  • concourse_manage_work_volume: Facultatif. Par défaut : "non". Active la gestion du volume de travail.
  • concourse_work_volume_device: Requis lorsque concourse_manage_work_volume est "oui". Le périphérique à monter comme volume de travail.
  • concourse_work_volume_fs_type: Facultatif. Le type de système de fichiers du volume de travail. Par défaut, cela est calculé pour être btrfs ou ext4 en fonction de la valeur de concourse_baggageclaim_driver.
  • concourse_work_volume_fs_opts: Facultatif. Une liste d'options à passer à la commande mkfs lors de la création du système de fichiers du volume de travail.
  • concourse_work_volume_fs_force_create: Facultatif. Par défaut : "non". Si oui, permet de créer un nouveau système de fichiers de volume de travail sur un périphérique qui a déjà un système de fichiers.
  • concourse_work_volume_fs_resize: Facultatif. Par défaut : "non". Si oui, si la taille du périphérique de bloc de volume de travail et du système de fichiers diffèrent, agrandit le système de fichiers dans l'espace.
  • concourse_work_volume_mount_path: Facultatif. Le répertoire auquel le volume de travail sera monté.
  • concourse_work_volume_mount_opts: Facultatif. Options de montage du volume de travail.

Exemple de Playbook

- hôtes : atc
  rôles :
  -le : troykinsella.concourse
    concourse_web : oui
    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 :
    - nom : admin
      mot_de_passe : mon_mot_de_passe_encrypté
    concourse_main_team_local_users :
    - admin
    concourse_external_url : http://concourse.example.com

-tes : workers
  rôles :
  -le : troykinsella.concourse
    concourse_worker : oui
    concourse_tsa_host : mon-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.mon-registre-prive.org

Tests

Prérequis :

  • Installer Docker

Pour exécuter les tests serverspec :

docker build .

Contributeurs

Licence

MIT © Troy Kinsella

À propos du projet

Concourse CI. CI that scales with your project.

Installer
ansible-galaxy install troykinsella.concourse
Licence
mit
Téléchargements
77.2k
Propriétaire
Staff Solutions Architect at @collectivei.