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.
Installs, Configures and Manages Harbor (docker)
ansible-galaxy install piwi3910.harbor