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.

Zainstaluj
ansible-galaxy install piwi3910.harbor
Licencja
mit
Pobrania
86
Właściciel