piwi3910.harbor
Ansible Role: Harbor
最新のAnsibleバージョンに対応するために役割を更新しました。元の役割は更新されていないようです。
これは、LinuxにHarborをインストールするAnsibleロールです。
このロールはアルファ段階です。問題やプルリクエストを歓迎します。
必要条件
なし。
ロール変数
完全なリストはdefaults/main.yaml
を参照してください。
デフォルトでは、ロールは現在のホストのIPを使ってharbor_hostname
を設定します。上書きが可能です。
インストール先ディレクトリを変更するには:
harbor_install_dir: /opt
デフォルトのプロトコルを変更するには:
harbor_ui_url_protocol: "http"
HarborのNGINXの公開ポートをデフォルトの80と443から変更したい場合は、次のように設定します:
harbor_exposed_http_port: 81
harbor_exposed_https_port: 444
プロキシの背後でHarborを実行している場合は、harbor_behind_proxy: yes
を設定してください。これにより、HarborのNGINXで必要な行がコメントアウトされ、トラブルシューティングセクションに従って機能します。
拡張機能をインストールするには、次のように設定します:
harbor_extras:
- clair
- notary
すでにRedisを設定している場合は、HarborのデフォルトのRedisホスト名とポートを変更したいかもしれません:
# 自分のRedisを運用している場合はこれを変更してください
harbor_redis_host: redis
harbor_redis_port: 6379
インストーラーに追加の引数を渡すこともできます。harbor_installer_extra_args
で設定します(文字列)。
Harborのインストール後にプロジェクトを自動的に作成したい場合は、harbor_projects
を定義できます。
harbor_projects:
- project_name: test
is_public: "false"
content_trust: "false"
prevent_vul: "true"
severity: "high"
auto_scan: "true"
デフォルトでは、ユーザーは自分で登録できます。自動的にユーザーを作成したい場合は、自己登録を無効にし、ユーザーのリストを設定する必要があります。これらのユーザーは自動的に作成されます。パスワードのデフォルトは"HarborUser12345"です。
この操作は冪等です。
harbor_self_registration: "off"
harbor_users:
- username: user1
email: [email protected]
realname: User Number 1
role_name: developer
role_id: 2
has_admin_role: true
依存関係
なし。
例のプレイブック
---
- name: 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: User Number 1
role_name: developer
role_id: 2
has_admin_role: true
roles:
- harbor
プレイブックが実行された後、ポート80/443でホストにアクセスし、HarborのUIを確認できるはずです。admin/Harbor12345
でログインできます。公開ポートを変更した場合は、80/443の代わりにそのポートを使用してください。
プロキシの背後でHarborを実行する
一般的な設定は、プロキシの背後でHarborを実行し、プロキシがSSLの終端を担当するものです。この場合、Harborの内部に独自のNGINXがあるため、少し細かい設定が必要です。
a) Harborには独自のNGINXプロキシがあり、http
として実行する必要があります。
b) ただし、プロキシを使用している場合は、HarborのNGINXで特定の行をコメントアウトする必要があります。
c) レルムのURLも外部から見えるようにhttps
に変更する必要があります。
そのようなシナリオで設定する必要がある変数の例を示します:
harbor_hostname: "myharbor.company.com"
harbor_api_url: "https://myharbor.company.com/api"
harbor_behind_proxy: yes
# 内部では、Harborはまだhttpで動作しています
harbor_ui_url_protocol: "http"
harbor_customize_crt: "off"
harbor_registry_realm_protocol: "https"
# 80/443と競合しないように、Harborのnginxを異なるポートで実行
harbor_exposed_http_port: 8798
harbor_exposed_https_port: 8799
harbor_extras:
- clair
harbor_self_registration: "off"
# すでにRedisコンテナを実行している場合に便利です
harbor_redis_host: redisharbor
これにより、以下のことが保証されます:
- Harborのnginxでこの行がコメントアウトされます。
- レジストリのレルムURLが正しく更新されます。
これは少し込み入っていますが、Harborのファイルやテンプレートをあまり変更しないようにするための妥協です。これにより、頻繁に壊れることを防げます。改善方法についての提案は歓迎です。
ステート管理
便利のために、このロールにはdocker-composeを使用してレジストリを停止、開始、および再起動するタスクが含まれています。
レジストリを再起動するために特別に作成されたプレイブックは次のとおりです:
---
- hosts: registry
tasks:
- name: Harborの再起動
include_role:
name: harbor
tasks_from: restart
上記のプレイブックを実行すると、Harborのすべてのコンポーネントが効果的に再起動します。これにより、clair
やnotary
を使用している場合も考慮され、彼らのdocker-composeファイルも使用されます。
tasks_from
にはrestart
、start
、stop
が指定できます。
既に管理者のパスワードを変更している場合に再びプレイブックを実行してユーザーのリストを確認したい場合は、どこかでharbor_admin_password
変数を設定するか、コマンドラインで-e "harbor_admin_password=mypass"
で渡してください。
作者情報
このロールは2019年にNicholas Amorimによって作成され、2022年にPascal Watteelによって更新されました。
Installs, Configures and Manages Harbor (docker)
ansible-galaxy install piwi3910.harbor