piwi3910.harbor

Ansible Rolle: Harbor

Aktualisierte Rolle, um mit modernen Ansible-Versionen zu arbeiten, da einige Funktionen nicht mehr unterstützt werden. Die ursprüngliche Rolle scheint nicht mehr aktualisiert zu werden.

Eine Ansible Rolle, die Harbor auf Linux installiert.

Diese Rolle befindet sich in der Alpha-Phase. Probleme und Pull-Requests sind willkommen.

Anforderungen

Keine.

Rollenvariablen

Für eine vollständige Liste siehe defaults/main.yaml.

Standardmäßig verwendet die Rolle die IP des aktuellen Hosts, um harbor_hostname festzulegen. Sie können dies überschreiben.

Um das Installationsverzeichnis zu ändern:

harbor_install_dir: /opt

Um das Standardprotokoll zu ändern:

harbor_ui_url_protocol: "http"

Wenn Sie die exponierten Ports von Harbors NGINX von den Standardeinstellungen 80 und 443 ändern möchten, verwenden Sie:

harbor_exposed_http_port: 81
harbor_exposed_https_port: 444

Wenn Sie Harbor hinter einem Proxy betreiben, setzen Sie harbor_behind_proxy: yes. Dadurch werden die notwendigen Zeilen in Harbors Nginx kommentiert, um es gemäß ihrem Fehlerbehebungsbereich zum Laufen zu bringen.

Um mit zusätzlichen Modulen zu installieren, setzen Sie:

harbor_extras:
    - clair
    - notary

Wenn Sie bereits einen Redis-Server eingerichtet haben, möchten Sie möglicherweise den Standard-Redis-Hostnamen und -Port von Harbor ändern:

# Diese ändern, wenn Sie bereits Ihren eigenen Redis betreiben
harbor_redis_host: redis
harbor_redis_port: 6379

Sie können auch zusätzliche Argumente an den Installer mit harbor_installer_extra_args (eine Zeichenfolge) übergeben.

Sie können harbor_projects definieren, wenn Sie möchten, dass Projekte automatisch erstellt werden, sobald Harbor installiert ist.

harbor_projects:
  - project_name: test
    is_public: "false"
    content_trust: "false"
    prevent_vul: "true"
    severity: "high"
    auto_scan: "true"

Standardmäßig können sich Benutzer selbst registrieren. Wenn Sie bevorzugen, Benutzer automatisch zu erstellen, müssen Sie die Selbstregistrierung deaktivieren und eine Liste von Benutzern festlegen. Diese Benutzer werden automatisch erstellt. Das Passwort ist standardmäßig "HarborUser12345".

Diese Operation ist idempotent.

harbor_self_registration: "off"
harbor_users:
    - username: user1
      email: [email protected]
      realname: Benutzer Nummer 1
      role_name: Entwickler
      role_id: 2
      has_admin_role: true

Abhängigkeiten

Keine.

Beispiel-Playbook

---
- name: Harbor installieren und konfigurieren
  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: Benutzer Nummer 1
        role_name: Entwickler
        role_id: 2
        has_admin_role: true
  roles:
    - harbor

Nachdem das Playbook ausgeführt wurde, sollten Sie in der Lage sein, zu Ihrem Host auf Port 80/443 zu navigieren und die Benutzeroberfläche von Harbor zu sehen. Sie können sich mit admin/Harbor12345 anmelden. Wenn Sie die exponierten Ports geändert haben, denken Sie daran, diese anstelle von 80/443 zu verwenden.

Harbor hinter Ihrem Proxy ausführen

Eine gängige Konfiguration ist, Harbor hinter einem Proxy auszuführen, der für die SSL-Terminierung verantwortlich ist. Harbor kann damit etwas kompliziert sein, da es sein eigenes Nginx hat und es verwirrend sein kann, weil

a) Harbor hat sein eigenes Nginx-Proxy, das als http ausgeführt werden muss. b) Einige Zeilen müssen in Harbors Nginx kommentiert werden, wenn Sie einen Proxy verwenden. c) Die Realm-URL muss ebenfalls auf das extern sichtbar gemacht werden: https.

Hier ist ein Beispiel für die Variablen, die in einem solchen Szenario festgelegt werden müssen:

harbor_hostname: "myharbor.company.com"
harbor_api_url: "https://myharbor.company.com/api"
harbor_behind_proxy: yes
# Intern läuft Harbor weiterhin auf http
harbor_ui_url_protocol: "http"
harbor_customize_crt: "off"
harbor_registry_realm_protocol: "https"
# Harbors nginx auf anderen Ports betreiben, um Konflikte mit 80/443 zu vermeiden
harbor_exposed_http_port: 8798
harbor_exposed_https_port: 8799
harbor_extras:
  - clair
harbor_self_registration: "off"
# Dies ist nützlich, wenn Sie bereits einen redis-Container betreiben
harbor_redis_host: redisharbor

Dies stellt sicher, dass:

  • Harbors nginx die diese Zeile kommentiert.
  • Die URL des Registrierungsbereichs korrekt aktualisiert wird.

Dies ist etwas kompliziert, aber ein Kompromiss, um nicht zu viele Änderungen an Harbors Dateien/Vorlagen vorzunehmen, da dies häufig zu Problemen führen kann. Ich bin offen für Vorschläge, wie man es verbessern kann.

Status verwalten

Zur Vereinfachung enthält diese Rolle Aufgaben zum Stoppen, Starten und Neustarten des Registrierungsdienstes mit docker-compose.

Hier ist ein speziell erstelltes Playbook zum Neustarten der Registrierung:

---
- hosts: registry
  tasks:
    - name: Harbor neustarten
      include_role:
        name: harbor
        tasks_from: restart

Das Ausführen des obigen Playbooks startet alle Komponenten von Harbor neu. Dies berücksichtigt, ob Sie clair und/oder notary verwenden, und nutzt deren docker-compose-Dateien ebenfalls.

tasks_from kann restart, start und stop sein.

Wenn Sie das Playbook erneut ausführen, um die Liste der Benutzer sicherzustellen, aber das Standard-Admin-Passwort bereits geändert haben, können Sie die Variable harbor_admin_password irgendwo festlegen oder sie einfach in der Befehlszeile mit -e "harbor_admin_password=mypass" übergeben.

Autoreninformationen

Diese Rolle wurde 2019 von Nicholas Amorim erstellt und 2022 von Pascal Watteel aktualisiert.

Installieren
ansible-galaxy install piwi3910.harbor
GitHub Repository
Lizenz
mit
Downloads
86
Besitzer