3.5. OpenShift Ansible Broker のインストール

OpenShift Ansible Broker をインストールし、これが提供するサービスバンドルへのアクセスを取得します。

重要

OpenShift Ansible Broker は OpenShift Container Platform 4 では非推奨になっています。同等または強化された機能は Operator Framework および Operator Lifecycle Manager (OLM) で提供されます。

3.5.1. 前提条件

3.5.2. OpenShift Ansible Broker について

OpenShift Ansible Broker は、Ansible playbook bundles (APB) で定義されるアプリケーションを管理する Open Service Broker (OSB) API の実装です。APB は、OpenShift Container Platform のコンテナーアプリケーションを定義し、配信する方法を提供し、Ansible ランタイムと共にコンテナーイメージに組み込まれた Ansible Playbook のバンドルで構成されています。APB は Ansible を活用し、複雑なデプロイメントを自動化する標準メカニズムを構築します。

OpenShift Ansible Brokerは、以下の基本的なワークフローに従います。

  1. ユーザーは、OpenShift Container Platform Web コンソールを使用してサービスカタログから利用可能なアプリケーションの一覧を要求します。
  2. サービスカタログは、OpenShift Ansible Broker から利用可能なアプリケーションの一覧を要求します。
  3. OpenShift Ansible Broker は定義されたコンテナーイメージレジストリーと通信し、利用可能な APB の情報を得ます。
  4. ユーザーは特定の APB をプロビジョニングする要求を実行します。
  5. OpenShift Ansible Broker は、APB でプロビジョニングメソッドを呼び出して、ユーザーのプロビジョニング要求に対応します。

OpenShift Ansible Broker は、OpenShift Container Platform 4 ではデフォルトでインストールされません。

3.5.2.1. Ansible Playbook Bundle

Ansible Playbook Bundle (APB) は、Ansible ロールおよび Playbook の既存の投資を活用できるようにする軽量アプリケーション定義です。

APB は、名前の付いた Playbook が含まれる単純なディレクトリーを使用し、プロビジョニングやバインドなどの OSB API アクションを実行します。apb.yml ファイルで定義するメタデータには、デプロイメント時に使用する必須/任意のパラメーターの一覧が含まれています。

3.5.3. OpenShift Ansible Service Broker Operator のインストール

前提条件

  • サービスカタログがインストールされていること。

手順

以下の手順では、Web コンソールを使用して OpenShift Ansible Service Broker Operator をインストールします。

  1. namespace を作成します。

    1. Web コンソールで AdministrationNamespaces に移動し、Create Namespace をクリックします。
    2. openshift-ansible-service-brokerName フィールドに、openshift.io/cluster-monitoring=trueLabels フィールドに入力し、Create をクリックします。

      注記

      namespace は openshift- で開始する必要があります。

  2. クラスターのロールバインディングを作成します。

    1. AdministrationRole Bindings に移動し、Create Binding をクリックします。
    2. Binding Type については、Cluster-wide Role Binding (ClusterRoleBinding) を選択します。
    3. Role Binding については、ansible-service-brokerName フィールドに入力します。
    4. Role については、admin を選択します。
    5. Subject については、Service Account オプションを選択し、openshift-ansible-service-broker namespace を選択して openshift-ansible-service-broker-operatorSubject Name フィールドに入力します。
    6. Create をクリックします。
  3. Red Hat Container Catalog に接続するためにシークレットを作成します。

    1. WorkloadsSecrets に移動します。openshift-ansible-service-broker プロジェクトが選択されていることを確認します。
    2. CreateKey/Value Secret をクリックします。
    3. asb-registry-authシークレット名 として入力します。
    4. usernameKey および Red Hat Container Catalog ユーザー名の Value を追加します。
    5. Add Key/Value をクリックし、passwordKey および Red Hat Container Catalog パスワードの Value を追加します。
    6. Create をクリックします。
  4. OperatorsOperatorHub ページに移動します。openshift-ansible-service-broker プロジェクトが選択されていることを確認します。
  5. OpenShift Ansible Service Broker Operator を選択します。
  6. Operator についての情報を確認してから、Install をクリックします。
  7. デフォルトの選択を確認し、Subscribe をクリックします。

次に、OpenShift Ansible Broker を起動し、これが提供するサービスバンドルへのアクセスを取得します。

3.5.4. OpenShift Ansible Broker の起動

OpenShift Ansible Broker Operator のインストール後に、以下の手順で OpenShift Ansible Broker を起動します。

前提条件

  • サービスカタログがインストールされていること。
  • OpenShift Ansible Service Broker Operator がインストールされていること。

手順

  1. Web コンソールで OperatorsInstalled Operators に移動し、openshift-ansible-service-broker プロジェクトを選択します。
  2. OpenShift Ansible Service Broker Operator を選択します。
  3. Provided APIs で、Automation Broker について Create New をクリックします。
  4. 以下を、提供されているデフォルトの YAML の spec フィールドに追加します。

    registry:
      - name: rhcc
        type: rhcc
        url: https://registry.redhat.io
        auth_type: secret
        auth_name: asb-registry-auth

    これは、OpenShift Ansible Service Broker Operator のインストール時に作成されたシークレットを参照します。これにより、Red Hat Container Catalog に接続できます。

  5. 追加の OpenShift Ansible Broker 設定オプションを設定し、Create をクリックします。
  6. OpenShift Ansible Broker が起動したことを確認します。

    OpenShift Ansible Broker の起動後に、CatalogDeveloper Catalog に移動し、Service Class チェックボックスを選択して利用可能なサービスバンドルを表示できます。OpenShift Ansible Broker が起動し、サービスバンドルが利用可能になるまで数分の時間がかかる場合があります。

    これらのサービスクラスが表示されない場合は、以下の項目のステータスを確認できます。

    • OpenShift Ansible Broker Pod のステータス

      • openshift-ansible-service-broker プロジェクトの WorkloadsPods ページから、asb- で起動する Pod のステータスが Running であり、Ready の準備状態であることを確認します。
    • クラスターサービスブローカーのステータス

      • CatalogBroker ManagementService Brokers ページから、ansible-service-broker サービスブローカーのステータスが Ready であることを確認します。
    • サービスカタログコントローラーマネージャー Pod のログ

      • openshift-service-catalog-controller-manager プロジェクトの WorkloadsPods ページから、それぞれの Pod のログを確認し、Successfully fetched catalog entries from broker のメッセージと共にログエントリーが表示されていることを確認します。

3.5.4.1. OpenShift Ansible Broker 設定オプション

OpenShift Ansible Broker の以下のオプションを設定できます。

表3.1 OpenShift Ansible Broker 設定オプション

YAML キー説明デフォルト値

brokerName

Broker インスタンスを特定するために使用される名前。

ansible-service-broker

brokerNamespace

Broker が置かれている namespace。

openshift-ansible-service-broker

brokerImage

Broker に使用されている完全修飾イメージ。

docker.io/ansibleplaybookbundle/origin-ansible-service-broker:v4.0

brokerImagePullPolicy

Broker イメージ自体に使用されるプルポリシー。

IfNotPresent

brokerNodeSelector

Broker のデプロイメントに使用されるノードセレクター文字列。

''

registries

Broker レジストリー設定の yaml 一覧として表現される。これにより、ユーザーは Broker が検出し、APB の取得に使用するイメージレジストリーを設定できます。

デフォルトレジストリー配列 を参照してください。

logLevel

Broker のログに使用されるログレベル。

info

apbPullPolicy

APB Pod に使用されるプルポリシー。

IfNotPresent

sandboxRole

APB を実行するために使用されるサービスアカウントに付与されるロール。

edit

keepNamespace

APB の完了後に APB を実行するために作成された一時 namespace が削除されたかどうか (結果の如何は問わない)。

false

keepNamespaceOnError

結果がエラーの場合のみ、APB の完了後に APB を実行するために作成された一時 namespace が削除されたかどうか。

false

bootstrapOnStartup

Broker が起動時にブートストラップルーチンを実行する必要があるかどうか。

true

refreshInterval

APB のインベントリーを更新する Broker ブートストラップ間の間隔。

600s

launchApbOnBind

Experimental: バインド操作時に APB を実行する Broker を切り替えます。

false

autoEscalate

APB の実行中に、Broker がユーザーのパーミッションをエスカレートするかどうか。これは、Broker が起点となるユーザー承認を実行してユーザーが APB サンドボックスに付与されたパーミッションを持つようにするため、通常は false のままになります。

false

outputRequest

Broker が受信する低レベル HTTP 要求を出力するかどうか。

false

registries のデフォルト配列

- type: rhcc
  name: rhcc
  url: https://registry.redhat.io
  white_list:
  - ".*-apb$"
  auth_type: secret
  auth_name: asb-registry-auth