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のすべてのコンポーネントが効果的に再起動します。これにより、clairnotaryを使用している場合も考慮され、彼らのdocker-composeファイルも使用されます。

tasks_fromにはrestartstartstopが指定できます。

既に管理者のパスワードを変更している場合に再びプレイブックを実行してユーザーのリストを確認したい場合は、どこかで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
ライセンス
mit
ダウンロード
86
所有者