1.3.3. デプロイ
APB のデプロイにより、コンテナーが起動し、必要な変数と共に実行される Playbook の名前が渡されます。OAB を経由しなくても APB を直接起動できます。それぞれの APB はパッケージ化されるため、その ENTRYPOINT
が実行時に Ansible を起動します。このコンテナーの有効期限は短く設定され、アプリケーションを管理し、終了するための Ansible Playbook を実行します。
通常の APB デプロイでは、APB コンテナーは、Ansible ロールを実行する provision.yml Playbook を実行してアプリケーションをプロビジョニングします。このロールは、oc create
コマンドを呼び出すか、または Ansible モジュールを利用して OpenShift Container Platform リソースを作成します。最終的な結果として、APB は Ansible を実行して OpenShift Container Platform と通信し、対象アプリケーションのプロビジョニングのオーケストレーションを実行します。
以下の図は、ユーザーが利用可能な APB の一覧を検出し、次に選択した APB をプロジェクトにプロビジョニングする 2 つのフェーズで設定されるデプロイメントのフローを示しています。
図1.2 利用可能な APB の一覧表示
OpenShift Container Platform ユーザーはサービスをプロジェクトにプロビジョニングすることを検討しているので、OpenShift Container Platform UI (Web コンソールまたは CLI) にアクセスしてサービスカタログと対話し、すでに利用可能な APB を検出します。
サービスカタログは、ユーザーに表示するために OAB から APB の一覧を要求します。
OAB は設定済みのすべてのコンテナーレジストリー (クラスターの OpenShift Container レジストリーまたはその他のリモートレジストリー) で APB (LABEL=apb-1.0
などの特定ラベルの付いたイメージ) を検索します。
OAB は検出された一覧をサービスカタログに返し、ユーザーはこの一覧を OpenShift Container Platform UI で表示できます。
図1.3 選択した APB のデプロイ
ユーザーはサービスカタログで提供される検出された一覧から APB を選択できるようになります。
サービスカタログは、ユーザーが選択した APB の使用について要求した OAB と通信します。
OAB は適切なコンテナーイメージレジストリーからイメージプルを開始します。
イメージのプル後に、OAB はアプリケーションのオーケストレーションのロジックを APB に送ります。サービスは APB コンテナーをいくつかのパラメーターで実行してデプロイされます。これを実行するには、以下のコマンドを一時的な namespace の OpenShift Container Platform クラスターに対して実行します。
$ oc run $IMAGE $METHOD $VARS ansible-playbook ${METHOD}.yaml ${VARS}
このコマンドは、以下のように分けられます。
-
oc run
コマンドは APB イメージを実行します。 -
結果として作成される有効期限の短いコンテナーでは、Ansible は、必要なアクションを実行するための Playbook (provision.yaml など) を実行する
ansible-playbook
コマンドを使用して起動します。これにより、OpenShift Container Platform リソースがユーザーのプロジェクトに作成されます。 - コンテナーは実行が終了すると終了し、一時的な namespace は削除されます。
結果として、ユーザーは OpenShift Container Platform UI から要求したサービスがプロジェクトに正常にプロビジョニングされていることを確認できます。