11.2. システムイメージのビルド
本セクションでは、システムイメージをビルドする手順について説明します。
前提条件
- Oracle Database の準備 の手順をすべて実行しているようにしてください。
手順
GitHub リポジトリーから 3scale 用 OpenShift テンプレート のクローンを作成します。以下のコマンドを使用します。
$ git clone --branch 2.9.1.GA https://github.com/3scale/3scale-amp-openshift-templates.git
-
Oracle Database の Instant Client パッケージファイルを
3scale-amp-openshift-templates/amp/system-oracle/oracle-client-files
ディレクトリーに置きます。 - 3scale 2.9 amp.yml テンプレートをダウンロードします。
-f
オプションでbuild.yml
OpenShift テンプレートを指定して、oc new-app
コマンドを実行します。$ oc new-app -f build.yml
-f
オプションでamp.yml
OpenShift テンプレートを指定し、-p
オプションでWILDCARD_DOMAIN
パラメーターに OpenShift クラスターのドメインを指定して、oc new-app
コマンドを実行します。$ oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.com
以下の
oc patch
コマンドを入力します。SYSTEM_PASSWORD
は Oracle Database の準備 で設定した Oracle Database のsystem
パスワードに置き換えます。$ oc patch dc/system-app -p '[{"op": "add", "path": "/spec/strategy/rollingParams/pre/execNewPod/env/-", "value": {"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}}]' --type=json $ oc patch dc/system-app -p '{"spec": {"strategy": {"rollingParams": {"post":{"execNewPod": {"env": [{"name": "ORACLE_SYSTEM_PASSWORD", "value": "SYSTEM_PASSWORD"}]}}}}}}'
以下のコマンドを入力します。
DATABASE_URL
はOracle Database の準備で指定した Oracle Database を参照するように置き換えます。$ oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'
oc start-build
コマンドを入力し、新しいシステムイメージをビルドします。$ oc start-build 3scale-amp-system-oracle --from-dir=.
ビルドが完了するまで待ちます。ビルドの状態を確認するには、以下のコマンドを実行します。
$ oc get build <build-name> -o jsonpath="{.status.phase}"
- ビルドが Complete の状態になるまで待ちます。
11.2.1. ImageChange トリガーの更新
システムイメージを使用する DeploymentConfig の ImageChange トリガーを更新します。これにより、トリガーが新しい Oracle ベースのシステムイメージを使用するようになります。
前提条件
- まず、システムイメージのビルド に記載の手順を実施します。
手順
環境変数内の現在の 3scale リリースを保存します。
$ export THREESCALE_RELEASE=2.9
system-app
ImageChange トリガーを更新します。$ oc set triggers dc/system-app --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-master,system-developer,system-provider --remove $ oc set triggers dc/system-app --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-master,system-developer,system-provider
これにより、
system-app
DeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。system-sidekiq
ImageChange トリガーを更新します。$ oc set triggers dc/system-sidekiq --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-sidekiq,check-svc --remove $ oc set triggers dc/system-sidekiq --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-sidekiq,check-svc
これにより、
system-sidekiq
DeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。system-sphinx
ImageChange トリガーを更新します。$ oc set triggers dc/system-sphinx --from-image=amp-system:${THREESCALE_RELEASE} --containers=system-sphinx,system-master-svc --remove $ oc set triggers dc/system-sphinx --from-image=amp-system:${THREESCALE_RELEASE}-oracle --containers=system-sphinx,system-master-svc
これにより、
system-sphinx
DeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。
関連情報
3scale と Oracle Database のサポートについては、Red Hat 3scale API Management のサポート対象設定 を参照してください。