troykinsella.concourse
ansible-concourse
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ę
systemdnazwanąconcourse-webi/lubconcourse-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.xsupport/5.x: Concourse 5.xsupport/4.x: Concourse 4.xsupport/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 wconcourse_etc_dir.
Wspólne zmienne
concourse_service_enabled: Opcjonalnie. Domyślnie: "tak". Zarządza usługąsystemddla instancji Concoursewebi/lubworker.concourse_service_start: Opcjonalnie. Domyślnie: "tak". Uruchamia usługisystemddla Concoursewebi/lubworker.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 atrybutuEnvironmentFilepliku jednostki usługisystemd. Jest to przydatne dla konfiguracji zarządzanej poza playbookiem. Jeśli konfiguracja powinna być zarządzana przez playbook, lepszym wyborem jestconcourse_web_envi/lubconcourse_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ć tylkoconcourse_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ć tylkoconcourse_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 doconcourse.concourse_web_env: Opcjonalnie. Hasło zmiennych środowiskowych udostępnionych procesowiconcourse 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 polanameipassword(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". Uruchamiaconcourse land-workerpo zatrzymaniu usługi.concourse_worker_retire_on_stop: Opcjonalnie. Domyślnie: "tak". Uruchamiaconcourse retire-workerpo 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 doconcourse.concourse_worker_env: Opcjonalnie. Hasło zmiennych środowiskowych udostępnionych procesowiconcourse worker.concourse_manage_work_volume: Opcjonalnie. Domyślnie: "nie". Aktywuje zarządzanie wolumenem roboczym.concourse_work_volume_device: Obowiązkowo, gdyconcourse_manage_work_volumejest 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śćbtrfslubext4, w zależności od wartościconcourse_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
- gaelL
- troykinsella (Zarządzający)
Licencja
MIT © Troy Kinsella
ansible-galaxy install troykinsella.concourse