troykinsella.concourse
ansible-concourse
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/ouconcourse-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.xsupport/5.x
: Concourse 5.xsupport/4.x
: Concourse 4.xsupport/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 dansconcourse_etc_dir
.
Variables communes
concourse_service_enabled
: Facultatif. Par défaut : "oui". Gère un servicesystemd
pour une instance Concourseweb
et/ouworker
.concourse_service_start
: Facultatif. Par défaut : "oui". Démarre le(s) service(s)systemd
pour Concourseweb
et/ouworker
.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'attributEnvironmentFile
du fichier d'unité de servicesystemd
. 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/ouconcourse_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, seulconcourse_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, seuleconcourse_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 processusconcourse 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 champsnom
etmot 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écuteconcourse land-worker
lors de l'arrêt du service.concourse_worker_retire_on_stop
: Facultatif. Par défaut : "oui". Exécuteconcourse 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 processusconcourse worker
.concourse_manage_work_volume
: Facultatif. Par défaut : "non". Active la gestion du volume de travail.concourse_work_volume_device
: Requis lorsqueconcourse_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 êtrebtrfs
ouext4
en fonction de la valeur deconcourse_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 :
- rô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
- hôtes : workers
rôles :
- rô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
- gaelL
- troykinsella (Mainteneur)
Licence
MIT © Troy Kinsella
ansible-galaxy install troykinsella.concourse