piwi3910.harbor
Rola Ansible: Harbor
Zaktualizowano rolę, aby działała z nowoczesnymi wersjami Ansible z powodu pewnych deprecjacji, ponieważ pierwotna rola wydaje się już nie być aktualizowana.
Jest to rola Ansible, która instaluje Harbor na systemie Linux.
Ta rola jest na etapie alfa. Problemy i propozycje zmian są mile widziane.
Wymagania
Brak.
Zmienne roli
Aby zobaczyć pełną listę, zobacz defaults/main.yaml
.
Domyślnie rola wykorzystuje adres IP bieżącego hosta do ustawienia harbor_hostname
. Możesz to nadpisać.
Aby zmienić katalog instalacji:
harbor_install_dir: /opt
Aby zmienić domyślny protokół:
harbor_ui_url_protocol: "http"
Jeśli chcesz zmienić wystawione porty NGINX Harbor z domyślnych 80 i 443, użyj:
harbor_exposed_http_port: 81
harbor_exposed_https_port: 444
Jeśli uruchamiasz Harbor za pośrednictwem proxy, ustaw harbor_behind_proxy: yes
. To skomentuje niezbędne linie w Nginx Harbor, aby działał zgodnie z sekcją rozwiązywania problemów.
Aby zainstalować z dodatkowymi funkcjami, ustaw:
harbor_extras:
- clair
- notary
Jeśli masz już ustawiony Redis, możesz chcieć zmienić domyślną nazwę hosta i port Redis w Harbor:
# zmień te, jeśli masz już własny redis
harbor_redis_host: redis
harbor_redis_port: 6379
Możesz także przekazać dodatkowe argumenty do instalatora za pomocą harbor_installer_extra_args
(jako ciąg znaków).
Możesz zdefiniować harbor_projects
, jeśli chcesz, aby projekty były automatycznie tworzone po zainstalowaniu Harbor.
harbor_projects:
- project_name: test
is_public: "false"
content_trust: "false"
prevent_vul: "true"
severity: "high"
auto_scan: "true"
Domyślnie użytkownicy mogą rejestrować się samodzielnie. Jeśli wolisz automatycznie tworzyć użytkowników, musisz wyłączyć samodzielną rejestrację i ustawić listę użytkowników. Ci użytkownicy zostaną utworzeni automatycznie. Domyślne hasło to "HarborUser12345".
Operacja ta jest idempotentna.
harbor_self_registration: "off"
harbor_users:
- username: user1
email: [email protected]
realname: Użytkownik Numer 1
role_name: developer
role_id: 2
has_admin_role: true
Zależności
Brak.
Przykładowy playbook
---
- name: Instalacja i konfiguracja Harbor
hosts: registry
vars:
harbor_projects:
- project_name: myproject
is_public: "false"
content_trust: "false"
prevent_vul: "true"
severity: "high"
auto_scan: "true"
harbor_users:
- username: user1
email: [email protected]
realname: Użytkownik Numer 1
role_name: developer
role_id: 2
has_admin_role: true
roles:
- harbor
Po uruchomieniu playbooka powinieneś móc przejść do swojego hosta na porcie 80/443 i zobaczyć interfejs użytkownika Harbor. Możesz się zalogować za pomocą admin/Harbor12345
. Jeśli zmieniłeś wystawione porty, pamiętaj, aby użyć ich zamiast 80/443.
Uruchamianie Harbor za proxy
Typowe ustawienie to uruchamianie Harbor za pośrednictwem proxy, gdzie proxy odpowiada za zakończenie SSL. Harbor może być przy tym dość skomplikowany, ponieważ ma własny Nginx w środku i sprawy mogą stać się mylące, ponieważ
a) Harbor ma własny Nginx proxy, który musi działać na http
b) Jednak pewne linie muszą być skomentowane w nginx Harbor, jeśli używasz proxy.
c) Adres URL realm musi być również zmieniony na ten, który jest widoczny z zewnątrz: https
.
Oto przykład zmiennych, które muszą być ustawione w takim scenariuszu:
harbor_hostname: "myharbor.company.com"
harbor_api_url: "https://myharbor.company.com/api"
harbor_behind_proxy: yes
# Wewnątrz Harbor wciąż działa na http
harbor_ui_url_protocol: "http"
harbor_customize_crt: "off"
harbor_registry_realm_protocol: "https"
# Uruchamianie Nginx Harbor na innych portach, aby uniknąć konfliktu z 80/443
harbor_exposed_http_port: 8798
harbor_exposed_https_port: 8799
harbor_extras:
- clair
harbor_self_registration: "off"
# To jest przydatne, jeśli masz już działający kontener redis
harbor_redis_host: redisharbor
To zapewni, że:
- Nginx Harbor skomentuje tę linię.
- Adres URL realm rejestru jest zaktualizowany poprawnie.
Jest to trochę skomplikowane, ale są to kompromisy, by nie zmieniać zbyt wiele w plikach/szablonach Harbor, ponieważ może to prowadzić do częstych problemów. Jestem otwarty na sugestie, jak można to poprawić.
Zarządzanie stanem
Dla wygody, ta rola zawiera zadania do zatrzymywania, uruchamiania i ponownego uruchamiania rejestru przy użyciu docker-compose.
Oto playbook stworzony specjalnie do ponownego uruchomienia rejestru:
---
- hosts: registry
tasks:
- name: Ponowne uruchamianie Harbor
include_role:
name: harbor
tasks_from: restart
Uruchomienie powyższego playbooka skutecznie restartuje wszystkie komponenty Harbor. To uwzględnia, czy używasz clair
i/lub notary
i wykorzystuje ich pliki docker-compose.
tasks_from
może być restart
, start
i stop
.
Jeśli uruchamiasz playbook ponownie, aby upewnić się, że lista użytkowników jest aktualna, ale już zmieniłeś domyślne hasło administratora, możesz ustawić zmienną harbor_admin_password
gdzieś lub po prostu przekazać ją w wierszu poleceń za pomocą -e "harbor_admin_password=mypass"
.
Informacje o autorze
Ta rola została stworzona w 2019 roku przez Nicholasa Amorima i została zaktualizowana przez Pascal Watteel w 2022 roku.
Installs, Configures and Manages Harbor (docker)
ansible-galaxy install piwi3910.harbor