troykinsella.concourse
ansible-concourse
Eine Ansible-Rolle zur Verwaltung von Concourse CI.
Umfang
Diese Rolle versteht, wie man eine Concourse CI-Web-(ATC/TSA) oder Worker-Dienstinstallation verwaltet.
Es:
- (Optional) erstellt einen Benutzer und eine Gruppe namens
concourse
, um den Daemon-Prozess auszuführen. - (Optional) formatiert und mountet ein Volume, in dem die Concourse-Arbeiten erfolgen.
- Installiert einen
systemd
-Dienst namensconcourse-web
und/oderconcourse-worker
. - Lädt das Concourse-Binär-Tar-Archiv von der offiziellen Webseite herunter.
- Erstellt ein Wrapper-Skript, das Optionen erfasst, die an die ausführbare Datei übergeben werden.
- Installiert notwendige SSH-Schlüsseldaten, die über Variablen bereitgestellt werden.
Es tut nicht:
- Generiert SSH-Schlüsselpaare.
- Verwalten der Postgres-Datenbank.
- Verwalten von Cloud-Infrastrukturen.
Installation
ansible-galaxy install troykinsella.concourse
Zweige
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
Hinweis: Concourse führt abwärtskompatible Änderungen der Befehlsoptionen innerhalb der Hauptversionen durch, daher unterstützen diese Zweige wahrscheinlich nicht frühere minor oder patch Revisionen einer Hauptversion. Die neueste Version, die getestet wird, ist in Klammern angegeben.
Rollenvariablen
Siehe defaults/main.yml
für Standardwerte, die unten nicht angegeben sind. Viele dieser Variablen entsprechen sinnvoll den Optionen, die beim Starten der Concourse-Binärdatei angegeben werden. Führen Sie concourse web -h
oder concourse worker -h
für weitere Einzelheiten aus.
Hinweis: Der Großteil der Variablen hat sinnvolle Standardwerte und muss normalerweise nicht definiert werden, aber sie existieren, wenn Kontrolle über das damit verbundene Verhalten benötigt wird. Beispiele für eine minimale Konfiguration sind zu finden.
Wartungsvariablen
concourse_force_restart
: Optional. Standard: "nein". Löst einen Neustart der Web- und/oder Worker-Dienste aus, unabhängig davon, ob sich die Konfiguration geändert hat.
Benutzervariablen
concourse_manage_user
: Optional. Standard: "ja". Verwaltet den Systembenutzer, dem die Dateibesitzrechte zugewiesen sind.concourse_user
: Optional. Der Benutzer, der das Concourse-Installationsverzeichnis und den laufenden Prozess besitzen wird.concourse_uid
: Optional. Die Benutzer-ID.concourse_group
: Optional. Die Gruppe, die das Concourse-Installationsverzeichnis und den laufenden Prozess besitzen wird.concourse_gid
: Optional. Die Gruppen-ID.
Installationsvariablen
concourse_version
: Optional. Die Version von Concourse, die installiert werden soll.concourse_install_prefix_dir
: Optional. Das Präfixverzeichnis, unter dem das Concourse-Installationsverzeichnis abgelegt wird. Das Concourse-Tar-Archiv wird während der Installation ebenfalls in dieses Verzeichnis heruntergeladen.concourse_install_dir
: Optional. Der Verzeichnispfad, in den das Concourse-Tar-Archiv extrahiert wird.concourse_binary_path
: Optional. Der absolute Pfad zur Concourse-Binärdatei.concourse_bin_dir
: Optional. Ein Verzeichnis, in dem die Concourse-Binärdatei und verwandte Shell-Skripte vorhanden sind.concourse_etc_dir
: Optional. Ein Verzeichnis, in dem Concourse-bezogene generierte oder verwaltete Dateien erstellt werden.concourse_archive_name
: Optional. Der Dateiname des zu installierenden Concourse-Release-Tar-Archivs.concourse_archive_url
: Optional. Die URL, unter der das Concourse-Release-Tar-Archiv heruntergeladen werden kann.concourse_archive_checksum
: Optional. Die Prüfziffer des Concourse-Release-Tar-Archivs, die zur Validierung des heruntergeladenen Archivs dient.concourse_archive_os
: Optional. Das Betriebssystem, für das das Concourse-Release-Tar-Archiv heruntergeladen werden soll.concourse_archive_arch
: Optional. Die Systemarchitektur, für die das Concourse-Release-Tar-Archiv heruntergeladen werden soll.concourse_archive_fetch_timeout
: Optional. Die Zeitüberschreitung in Sekunden für das Herunterladen des Concourse-Release-Tar-Archivs.concourse_archive_delete_after_unarchive
: Optional. Standard: "ja". Löscht das Release-Tar-Archiv, nachdem es entpackt wurde.concourse_binary_mode
: Optional. Der Dateimodus der Concourse-Binärdatei.concourse_etc_files_mode
: Optional. Der Dateimodus aller Dateien imconcourse_etc_dir
.
Gemeinsame Variablen
concourse_service_enabled
: Optional. Standard: "ja". Verwaltet einensystemd
-Dienst für eine Concourseweb
und/oderworker
Instanz.concourse_service_start
: Optional. Standard: "ja". Startet den/diesystemd
-Dienste für Concourseweb
und/oderworker
.concourse_log_level
: Optional. Das minimale Log-Level, das angezeigt werden soll. [debug|info|error|fatal]concourse_env_file
: Optional. Eine Datei, die Umgebungsvariablen enthält, die in dasEnvironmentFile
-Attribut dersystemd
-Diensteinheit eingespeist werden. Dies ist nützlich für Konfigurationen, die außerhalb des Playbooks verwaltet werden. Wenn die Konfiguration vom Playbook verwaltet werden soll, sindconcourse_web_env
und/oderconcourse_worker_env
die bessere Wahl.
Web-Variablen
concourse_web
: Optional. Auf "ja" setzen, um das Concourse ATC zu installieren.concourse_bind_ip
: Optional. Die IP-Adresse, auf der Webbetrieb gehört.concourse_bind_port
: Optional. Der Port, auf dem HTTP-Verkehr gehört wird.concourse_tls_bind_port
: Optional. Der Port, auf dem HTTPS-Verkehr gehört wird.concourse_tls_certificate
: Optional. Der Inhalt des TLS-Zertifikats, das für HTTPS verwendet werden soll.concourse_tls_certificate_path
: Optional. Der Pfad zur Datei des TLS-Zertifikats, das für HTTPS verwendet werden soll. Normalerweise muss nurconcourse_tls_certificate
definiert werden.concourse_tls_key
: Optional. Der Inhalt des TLS-Schlüssels, der für HTTPS verwendet werden soll.concourse_tls_key_path
: Optional. Der Pfad zur Datei des TLS-Schlüssels, der für HTTPS verwendet werden soll. Normalerweise muss nurconcourse_tls_key
definiert werden.concourse_peer_address
: Optional. Die URL, unter der dieses ATC von anderen ATCs im Cluster erreicht werden kann.concourse_external_url
: Optional. Die URL, unter der jedes ATC von außen erreicht werden kann.concourse_web_launcher_path
: Optional. Der Pfad zu dem Skript, das den Concourse-Webprozess startet.concourse_web_launcher_mode
: Optional. Der Dateimodus des Web-Launcher-Skripts.concourse_cli_artifacts_dir
: Optional. Der Wert der Option--cli-artifacts-dir
.concourse_authorized_worker_keys_path
: Optional. Der Pfad zur Datei mit den autorisierten Worker-Schlüsseln.concourse_host_key_path
: Optional. Der Pfad zur Host-Schlüssel-Datei.concourse_session_signing_key
: Erforderlich. Der Schlüssel zur Sitzungsunterzeichnung.concourse_session_signing_key_path
: Optional. Der Pfad zur Datei des Schlüssels zur Sitzungsunterzeichnung.concourse_encryption_key
: Optional. Ein Schlüssel mit einer Länge von 16 oder 32, der verwendet wird, um sensible Daten vor der Speicherung in der Datenbank zu verschlüsseln.concourse_old_encryption_key
: Optional. Ein zuvor verwendeter Verschlüsselungsschlüssel. Wenn ohne neuen Schlüssel bereitgestellt, werden Daten verschlüsselt. Wenn mit neuem Schlüssel bereitgestellt, werden Daten neu verschlüsselt.concourse_host_key
: Erforderlich. Der Hostschlüssel.concourse_authorized_worker_keys
: Erforderlich. Verknüpfte autorisierte Worker-Schlüssel.concourse_auth_duration
: Optional. Die Zeitdauer, für die Tokens gültig sind.concourse_resource_checking_interval
: Optional. Intervall, in dem nach neuen Versionen von Ressourcen gesucht wird.concourse_base_resource_type_defaults
: Optional. Ein Hash von clusterweiten Standardwerten für Ressourcentypen.concourse_base_resource_type_defaults_file
: Optional. Der Pfad zur Standardwertdatei für Ressourcentypen.concourse_web_options
: Optional. Weitere nicht verwaltete Optionen, die anconcourse
übergeben werden.concourse_web_env
: Optional. Ein Hash von Umgebungsvariablen, die demconcourse web
-Prozess zur Verfügung stehen.
Web PostgreSQL-Variablen
concourse_postgres_host
: Optional. Der Postgres-Host, zu dem eine Verbindung hergestellt werden soll.concourse_postgres_port
: Optional. Der Postgres-Port, zu dem eine Verbindung hergestellt werden soll.concourse_postgres_socket
: Optional. Der Pfad zu einem Unix-Domain-Socket, zu dem verbunden werden soll.concourse_postgres_user
: Optional. Der Postgres-Benutzer, unter dem angemeldet werden soll.concourse_postgres_password
: Optional. Das Passwort des Postgres-Benutzers.concourse_postgres_ssl_mode
: Optional. Ob SSL mit der Postgres-Verbindung verwendet werden soll oder nicht.concourse_postgres_ca_cert
: Optional. Der Speicherort der Postgres-CA-Zertifikatdatei.concourse_postgres_client_cert
: Optional. Der Speicherort der Postgres-Client-Zertifikatdatei.concourse_postgres_client_key
: Optional. Der Speicherort der Postgres-Client-Schlüsseldatei.concourse_postgres_connect_timeout
: Optional. Timeout für das Wählen des Postgres.concourse_postgres_database
: Optional. Der Name der Postgres-Datenbank.
Web lokale Authentifizierungsvariablen
concourse_local_users
: Optional. Eine Liste von Concourse-Benutzerdaten, die als lokale Benutzer hinzugefügt werden. Einträge sind Objekte mit den Feldernname
undpassword
(siehe Beispiel). Passwörter können im Klartext oder bcryptet sein.concourse_main_team_local_users
: Optional. Liste der lokalen Concourse-Benutzer, die zu den genehmigten Benutzern (der angegebenen lokalen Benutzerliste) gehören.
Web GitHub Authentifizierungsvariablen
concourse_github_client_id
: Optional. GitHub-Client-ID.concourse_github_client_secret
: Optional. GitHub-Client-Geheimnis.concourse_main_team_github_users
: Optional. Liste der genehmigten GitHub-Benutzer.concourse_main_team_github_orgs
: Optional. Liste der genehmigten GitHub-Organisationen.concourse_main_team_github_teams
: Optional. Liste der genehmigten GitHub-Teams im Format "org:team".
Web andere Authentifizierungsmethoden
Nicht unterstützt. Stellen Sie es selbst bereit, indem Sie die Befehlsoptionen für concourse web
mit der Variablen concourse_web_options
bereitstellen.
Worker-Variablen
concourse_worker
: Optional. Auf "ja" setzen, um einen Concourse-Worker zu installieren.concourse_worker_launcher_path
: Optional. Der Pfad zum Skript, das den Concourse-Worker-Prozess startet.concourse_worker_land_path
: Optional. Der Pfad zum Skript, das einen Worker ausführt.concourse_worker_retire_path
: Optional. Der Pfad zum Skript, das einen Worker zurückzieht.concourse_worker_binary_mode
: Optional. Der Dateimodus des Worker-Launchers, für die Landung und Rücknahme-Skripte.concourse_worker_land_on_stop
: Optional. Standard: "nein". Führtconcourse land-worker
beim Stoppen des Dienstes aus.concourse_worker_retire_on_stop
: Optional. Standard: "ja". Führtconcourse retire-worker
beim Stoppen des Dienstes aus.concourse_work_dir
: Optional. Das Verzeichnis, in dem der Worker arbeitet.concourse_tsa_public_key_path
: Optional. Der Pfad zur Datei des TSA-öffentlichen Schlüssels.concourse_tsa_worker_key_path
: Optional. Der Pfad zur Datei des Worker-Privatschlüssels.concourse_tsa_host
: Erforderlich. Der Wert der--tsa-host
-Option.concourse_tsa_public_key
: Erforderlich. Der TSA-öffentliche Schlüssel.concourse_tsa_worker_key
: Erforderlich. Der TSA-Worker-Privatschlüssel.concourse_worker_tag
: Optional. Der Wert der--tag
-Option.concourse_baggageclaim_driver
: Optional. Der Treiber, der zur Verwaltung von Volumes verwendet wird.concourse_worker_options
: Optional. Weitere nicht verwaltete Optionen, die anconcourse
übergeben werden.concourse_worker_env
: Optional. Ein Hash von Umgebungsvariablen, die demconcourse worker
-Prozess zur Verfügung stehen.concourse_manage_work_volume
: Optional. Standard: "nein". Aktiviert die Verwaltung des Arbeitsvolumes.concourse_work_volume_device
: Erforderlich, wennconcourse_manage_work_volume
auf "ja" gesetzt ist. Das Gerät, das als Arbeitsvolume gemountet werden soll.concourse_work_volume_fs_type
: Optional. Der Dateisystemtyp des Arbeitsvolumes. Standardmäßig wird dies aufgrund des Wertes vonconcourse_baggageclaim_driver
alsbtrfs
oderext4
berechnet.concourse_work_volume_fs_opts
: Optional. Eine Liste von Optionen, die an den mkfs-Befehl übergeben werden, wenn das Dateisystem des Arbeitsvolumes erstellt wird.concourse_work_volume_fs_force_create
: Optional. Standard: "nein". Wenn ja, wird es ermöglicht, ein neues Arbeitsvolumen-Dateisystem auf einem Gerät zu erstellen, das bereits ein Dateisystem hat.concourse_work_volume_fs_resize
: Optional. Standard: "nein". Wenn ja, wenn sich die Größe des Blockgeräts und des Dateisystems des Arbeitsvolumens unterscheiden, wird das Dateisystem in den Platz erweitert.concourse_work_volume_mount_path
: Optional. Das Verzeichnis, in dem das Arbeitsvolume gemountet wird.concourse_work_volume_mount_opts
: Optional. Optionen für das Mounten des Arbeitsvolumes.
Beispiel-Playbook
- hosts: atc
roles:
- role: troykinsella.concourse
concourse_web: ja
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: ja
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
Testen
Voraussetzungen:
- Docker installieren
Um Serverspec-Tests durchzuführen:
docker build .
Mitwirkende
- gaelL
- troykinsella (Betreuer)
Lizenz
MIT © Troy Kinsella
ansible-galaxy install troykinsella.concourse