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ę
systemd
nazwanąconcourse-web
i/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ąsystemd
dla instancji Concourseweb
i/lubworker
.concourse_service_start
: Opcjonalnie. Domyślnie: "tak". Uruchamia usługisystemd
dla Concourseweb
i/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 atrybutuEnvironmentFile
pliku 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_env
i/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 polaname
ipassword
(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-worker
po zatrzymaniu usługi.concourse_worker_retire_on_stop
: Opcjonalnie. Domyślnie: "tak". Uruchamiaconcourse 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 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_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
lubext4
, 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