troykinsella.concourse

ansible-concourse

Status budowy

Rola Ansible do zarządzania Concourse CI.

Zakres

Ta rola potrafi zarządzać instalacją usług webowych (ATC/TSA) lub robotów Concourse CI.

Robi to:

  • (Opcjonalnie) tworzy użytkownika i grupę concourse, na których działa proces demona.
  • (Opcjonalnie) formatuje i montuje wolumen do pracy Concourse.
  • Instaluje usługę systemd nazwaną concourse-web i/lub concourse-worker.
  • Pobiera archiwum binarne Concourse z oficjalnej strony.
  • Tworzy skrypt pomocniczy, który obsługuje opcje przekazywane do pliku wykonywalnego.
  • Instaluje niezbędne pliki kluczy SSH, podane przez zmienne.

Nie robi tego:

  • Nie generuje par kluczy SSH.
  • Nie zarządza bazą danych Postgres.
  • Nie zarządza żadną infrastrukturą chmurową.

Instalacja

ansible-galaxy install troykinsella.concourse

Gałęzie

  • 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

Uwaga: Concourse wprowadza zmiany w opcjach poleceń, które są niekompatybilne wstecz w obrębie głównych wersji, więc te gałęzie mogą nie wspierać wcześniejszych mniejszych lub łatkowych wersji danej głównej wersji. Ostatnia wersja używana w testach jest podana w nawiasach.

Zmienne roli

Zobacz defaults/main.yml dla domyślnych wartości, które nie są określone poniżej. Wiele z tych zmiennych ma sensowne mapowanie z opcjami przekazywanymi do binarnego pliku Concourse podczas uruchamiania. Uruchom concourse web -h lub concourse worker -h, aby uzyskać więcej informacji.

Uwaga: Większość zmiennych ma sensowne domyślne wartości i zazwyczaj nie trzeba ich definiować, ale istnieją, gdy potrzebna jest kontrola nad powiązanym zachowaniem. Zobacz przykłady dla minimalnego zestawu konfiguracji.

Zmienne konserwacyjne

  • concourse_force_restart: Opcjonalnie. Domyślnie: "nie". Wymusza ponowne uruchomienie usług webowych i/lub roboczych, niezależnie od tego, czy konfiguracja została zmieniona.

Zmienne użytkownika

  • concourse_manage_user: Opcjonalnie. Domyślnie: "tak". Zarządza systemowym użytkownikiem, któremu przypisana jest własność pliku.
  • concourse_user: Opcjonalnie. Użytkownik, który będzie właścicielem katalogu instalacyjnego Concourse i działającego procesu.
  • concourse_uid: Opcjonalnie. ID użytkownika.
  • concourse_group: Opcjonalnie. Grupa, która będzie właścicielem katalogu instalacyjnego Concourse i działającego procesu.
  • concourse_gid: Opcjonalnie. ID grupy.

Zmienne instalacji

  • concourse_version: Opcjonalnie. Wersja Concourse do zainstalowania.
  • concourse_install_prefix_dir: Opcjonalnie. Katalog główny, w którym zostanie umieszczony katalog instalacyjny Concourse. Archiwum Concourse jest również pobierane do tego katalogu podczas instalacji.
  • concourse_install_dir: Opcjonalnie. Ścieżka katalogu, do którego zostanie rozpakowane archiwum Concourse.
  • concourse_binary_path: Opcjonalnie. Absolutna ścieżka do binarnego pliku Concourse.
  • concourse_bin_dir: Opcjonalnie. Katalog, w którym znajduje się plik binarny Concourse oraz powiązane skrypty powłoki.
  • concourse_etc_dir: Opcjonalnie. Katalog, w którym są tworzone pliki związane z Concourse.
  • concourse_archive_name: Opcjonalnie. Nazwa pliku archiwum wersji Concourse do zainstalowania.
  • concourse_archive_url: Opcjonalnie. URL, pod którym można pobrać archiwum wersji Concourse.
  • concourse_archive_checksum: Opcjonalnie. Suma kontrolna archiwum wersji Concourse używana do weryfikacji pobranego archiwum.
  • concourse_archive_os: Opcjonalnie. System operacyjny, dla którego ma być pobrane archiwum wersji Concourse.
  • concourse_archive_arch: Opcjonalnie. Architektura systemu, dla której ma być pobrane archiwum wersji Concourse.
  • concourse_archive_fetch_timeout: Opcjonalnie. Czas oczekiwania w sekundach na pobranie archiwum wersji Concourse.
  • concourse_archive_delete_after_unarchive: Opcjonalnie. Domyślnie: "tak". Usuwa archiwum wersji po jego rozpakowaniu.
  • concourse_binary_mode: Opcjonalnie. Tryb pliku binarnego Concourse.
  • concourse_etc_files_mode: Opcjonalnie. Tryb pliku dla wszystkich plików przechowywanych w concourse_etc_dir.

Wspólne zmienne

  • concourse_service_enabled: Opcjonalnie. Domyślnie: "tak". Zarządza usługą systemd dla instancji Concourse web i/lub worker.
  • concourse_service_start: Opcjonalnie. Domyślnie: "tak". Uruchamia usługi systemd dla Concourse web i/lub worker.
  • concourse_log_level: Opcjonalnie. Minimalny poziom logów do zobaczenia. [debug|info|error|fatal]
  • concourse_env_file: Opcjonalnie. Plik zawierający zmienne środowiskowe, który jest podawany do atrybutu EnvironmentFile pliku jednostki usługi systemd. Jest to przydatne dla konfiguracji zarządzanej poza playbookiem. Jeśli konfiguracja powinna być zarządzana przez playbook, lepszym wyborem jest concourse_web_env i/lub concourse_worker_env.

Zmienne sieciowe

  • concourse_web: Opcjonalnie. Ustaw na "tak", aby zainstalować ATC Concourse.
  • concourse_bind_ip: Opcjonalnie. Adres IP, na którym ma być nasłuchiwany ruch sieciowy.
  • concourse_bind_port: Opcjonalnie. Port, na którym ma być nasłuchiwany ruch HTTP.
  • concourse_tls_bind_port: Opcjonalnie. Port, na którym ma być nasłuchiwany ruch HTTPS.
  • concourse_tls_certificate: Opcjonalnie. Treść certyfikatu TLS do użycia dla zakończenia HTTPS.
  • concourse_tls_certificate_path: Opcjonalnie. Zdalna ścieżka pliku certyfikatu TLS do użycia dla zakończenia HTTPS. Zwykle wystarczy zdefiniować tylko concourse_tls_certificate.
  • concourse_tls_key: Opcjonalnie. Treść klucza TLS do użycia dla zakończenia HTTPS.
  • concourse_tls_key_path: Opcjonalnie. Zdalna ścieżka pliku klucza TLS do użycia dla zakończenia HTTPS. Zwykle wystarczy zdefiniować tylko concourse_tls_key.
  • concourse_peer_address: Opcjonalnie. URL, pod którym ten ATC może być osiągnięty z innych ATC w klustrze.
  • concourse_external_url: Opcjonalnie. URL, pod którym wszelkie ATC mogą być osiągnięte z zewnątrz.
  • concourse_web_launcher_path: Opcjonalnie. Ścieżka do skryptu uruchamiającego proces webowy Concourse.
  • concourse_web_launcher_mode: Opcjonalnie. Tryb pliku skryptu uruchamiającego.
  • concourse_cli_artifacts_dir: Opcjonalnie. Wartość opcji --cli-artifacts-dir.
  • concourse_authorized_worker_keys_path: Opcjonalnie. Ścieżka do pliku z autoryzowanymi kluczami roboczymi.
  • concourse_host_key_path: Opcjonalnie. Ścieżka do pliku klucza hosta.
  • concourse_session_signing_key: Obowiązkowo. Klucz do podpisywania sesji.
  • concourse_session_signing_key_path: Opcjonalnie. Ścieżka do pliku klucza do podpisywania sesji.
  • concourse_encryption_key: Opcjonalnie. Klucz o długości 16 lub 32 znaki używany do szyfrowania wrażliwych danych przed ich zapisaniem w bazie danych.
  • concourse_old_encryption_key: Opcjonalnie. Klucz szyfrowania, który był wcześniej używany. Jeśli podany bez nowego klucza, dane są szyfrowane. Jeśli podany z nowym kluczem, dane są ponownie szyfrowane.
  • concourse_host_key: Obowiązkowo. Klucz hosta.
  • concourse_authorized_worker_keys: Obowiązkowo. Połączone autoryzowane klucze robocze.
  • concourse_auth_duration: Opcjonalnie. Czas, przez który tokeny są ważne.
  • concourse_resource_checking_interval: Opcjonalnie. Interwał sprawdzania nowych wersji zasobów.
  • concourse_base_resource_type_defaults: Opcjonalnie. Hasło z domyślnymi wartościami typu zasobu dla całego klastra.
  • concourse_base_resource_type_defaults_file: Opcjonalnie. Ścieżka do pliku z domyślnymi wartościami typu zasobu.
  • concourse_web_options: Opcjonalnie. Inne opcje, które nie są zarządzane, przekazywane do concourse.
  • concourse_web_env: Opcjonalnie. Hasło zmiennych środowiskowych udostępnionych procesowi concourse web.

Zmienne PostgreSQL dla sieci

  • concourse_postgres_host: Opcjonalnie. Host PostgreSQL, z którym ma być nawiązane połączenie.
  • concourse_postgres_port: Opcjonalnie. Port PostgreSQL, z którym ma być nawiązane połączenie.
  • concourse_postgres_socket: Opcjonalnie. Ścieżka do gniazda domeny Unix do połączenia.
  • concourse_postgres_user: Opcjonalnie. Użytkownik PostgreSQL, z którym należy się zalogować.
  • concourse_postgres_password: Opcjonalnie. Hasło użytkownika PostgreSQL.
  • concourse_postgres_ssl_mode: Opcjonalnie. Czy używać SSL podczas łączenia z PostgreSQL.
  • concourse_postgres_ca_cert: Opcjonalnie. Lokalizacja pliku certyfikatu CA PostgreSQL.
  • concourse_postgres_client_cert: Opcjonalnie. Lokalizacja pliku certyfikatu klienta PostgreSQL.
  • concourse_postgres_client_key: Opcjonalnie. Lokalizacja pliku klucza klienta PostgreSQL.
  • concourse_postgres_connect_timeout: Opcjonalnie. Czas oczekiwania na połączenie z PostgreSQL.
  • concourse_postgres_database: Opcjonalnie. Nazwa bazy danych PostgreSQL.

Zmienne lokalnej autoryzacji dla sieci

  • concourse_local_users: Opcjonalnie. Lista poświadczeń użytkowników Concourse dodawanych jako lokalni użytkownicy. Pozycje to obiekty posiadające pola name i password (zobacz przykład). Hasła mogą być w postaci czystego tekstu lub z bcryptem.
  • concourse_main_team_local_users: Opcjonalnie. Lista dozwolonych lokalnych użytkowników Concourse (z dostarczonej listy lokalnych użytkowników).

Zmienne autoryzacji GitHub dla sieci

  • concourse_github_client_id: Opcjonalnie. ID klienta GitHub.
  • concourse_github_client_secret: Opcjonalnie. Tajny klucz klienta GitHub.
  • concourse_main_team_github_users: Opcjonalnie. Lista dozwolonych użytkowników GitHub.
  • concourse_main_team_github_orgs: Opcjonalnie. Lista dozwolonych organizacji GitHub.
  • concourse_main_team_github_teams: Opcjonalnie. Lista dozwolonych zespołów GitHub w formacie "org:team".

Zmienne innych metod autoryzacji

Nieobsługiwane. Zrób to samodzielnie, podając opcje z polecenia concourse web przy użyciu zmiennej concourse_web_options.

Zmienne robocze

  • concourse_worker: Opcjonalnie. Ustaw na "tak", aby zainstalować robota Concourse.
  • concourse_worker_launcher_path: Opcjonalnie. Ścieżka do skryptu uruchamiającego proces roboczy Concourse.
  • concourse_worker_land_path: Opcjonalnie. Ścieżka do skryptu, który ląduje robota.
  • concourse_worker_retire_path: Opcjonalnie. Ścieżka do skryptu, który wycofuje robota.
  • concourse_worker_binary_mode: Opcjonalnie. Tryb pliku dla skryptów uruchamiającego, lądowania i wycofywania robota.
  • concourse_worker_land_on_stop: Opcjonalnie. Domyślnie: "nie". Uruchamia concourse land-worker po zatrzymaniu usługi.
  • concourse_worker_retire_on_stop: Opcjonalnie. Domyślnie: "tak". Uruchamia concourse retire-worker po zatrzymaniu usługi.
  • concourse_work_dir: Opcjonalnie. Katalog, w którym robot wykonuje pracę.
  • concourse_tsa_public_key_path: Opcjonalnie. Ścieżka do pliku klucza publicznego TSA.
  • concourse_tsa_worker_key_path: Opcjonalnie. Ścieżka do pliku klucza prywatnego robota.
  • concourse_tsa_host: Obowiązkowo. Wartość opcji --tsa-host.
  • concourse_tsa_public_key: Obowiązkowo. Klucz publiczny TSA.
  • concourse_tsa_worker_key: Obowiązkowo. Klucz prywatny robota TSA.
  • concourse_worker_tag: Opcjonalnie. Wartość opcji --tag.
  • concourse_baggageclaim_driver: Opcjonalnie. Sterownik używany do zarządzania wolumenami.
  • concourse_worker_options: Opcjonalnie. Inne opcje, które nie są zarządzane, przekazywane do concourse.
  • concourse_worker_env: Opcjonalnie. Hasło zmiennych środowiskowych udostępnionych procesowi concourse worker.
  • concourse_manage_work_volume: Opcjonalnie. Domyślnie: "nie". Aktywuje zarządzanie wolumenem roboczym.
  • concourse_work_volume_device: Obowiązkowo, gdy concourse_manage_work_volume jest równe "tak". Urządzenie do zamontowania jako wolumen roboczy.
  • concourse_work_volume_fs_type: Opcjonalnie. Typ systemu plików wolumenu roboczego. Domyślnie obliczana jest wartość btrfs lub ext4, w zależności od wartości concourse_baggageclaim_driver.
  • concourse_work_volume_fs_opts: Opcjonalnie. Lista opcji, które mają być przekazane do polecenia mkfs przy tworzeniu systemu plików wolumenu roboczego.
  • concourse_work_volume_fs_force_create: Opcjonalnie. Domyślnie: "nie". Jeśli tak, pozwala na utworzenie nowego systemu plików wolumenu roboczego na urządzeniu, które już ma system plików.
  • concourse_work_volume_fs_resize: Opcjonalnie. Domyślnie: "nie". Jeśli tak, a rozmiar urządzenia wolumenu roboczego i systemu plików różni się, powiększa system plików do dostępnym miejscu.
  • concourse_work_volume_mount_path: Opcjonalnie. Katalog, do którego zostanie zamontowany wolumen roboczy.
  • concourse_work_volume_mount_opts: Opcjonalnie. Opcje montażu wolumenu roboczego.

Przykład playbooka

- hosts: atc
  roles:
  - role: troykinsella.concourse
    concourse_web: tak
    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: tak
    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

Testowanie

Wymagania wstępne:

  • Zainstaluj Docker

Aby uruchomić testy serverspec:

docker build .

Współtwórcy

Licencja

MIT © Troy Kinsella

O projekcie

Concourse CI. CI that scales with your project.

Zainstaluj
ansible-galaxy install troykinsella.concourse
Licencja
mit
Pobrania
77.2k
Właściciel
Staff Solutions Architect at @collectivei.