troykinsella.concourse

ansible-concourse

Build Status

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 namens concourse-web und/oder concourse-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.x
  • support/5.x: Concourse 5.x
  • support/4.x: Concourse 4.x
  • support/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 im concourse_etc_dir.

Gemeinsame Variablen

  • concourse_service_enabled: Optional. Standard: "ja". Verwaltet einen systemd-Dienst für eine Concourse web und/oder worker Instanz.
  • concourse_service_start: Optional. Standard: "ja". Startet den/die systemd-Dienste für Concourse web und/oder worker.
  • 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 das EnvironmentFile-Attribut der systemd-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, sind concourse_web_env und/oder concourse_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 nur concourse_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 nur concourse_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 an concourse übergeben werden.
  • concourse_web_env: Optional. Ein Hash von Umgebungsvariablen, die dem concourse 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 Feldern name und password (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ührt concourse land-worker beim Stoppen des Dienstes aus.
  • concourse_worker_retire_on_stop: Optional. Standard: "ja". Führt concourse 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 an concourse übergeben werden.
  • concourse_worker_env: Optional. Ein Hash von Umgebungsvariablen, die dem concourse worker-Prozess zur Verfügung stehen.
  • concourse_manage_work_volume: Optional. Standard: "nein". Aktiviert die Verwaltung des Arbeitsvolumes.
  • concourse_work_volume_device: Erforderlich, wenn concourse_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 von concourse_baggageclaim_driver als btrfs oder ext4 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

Lizenz

MIT © Troy Kinsella

Über das Projekt

Concourse CI. CI that scales with your project.

Installieren
ansible-galaxy install troykinsella.concourse
Lizenz
mit
Downloads
77.2k
Besitzer
Staff Solutions Architect at @collectivei.