9.2. システムイメージのビルド
本セクションでは、システムイメージをビルドする手順について説明します。
前提条件
- Oracle Database の準備 の手順をすべて実行しているようにしてください。
手順
GitHub リポジトリーから 3scale OpenShift テンプレートをダウンロードし、アーカイブを展開します。
tar -xzf 3scale-amp-openshift-templates-3scale-2.11.1-GA.tar.gz
-
Oracle Database の Instant Client パッケージファイルを
3scale-amp-openshift-templates-3scale-2.11.1-GA/amp/system-oracle/oracle-client-files
ディレクトリーに配置します。 - 3scale 2.11 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 の状態になるまで待ちます。
9.2.1. ImageChange トリガーの更新
システムイメージを使用する DeploymentConfig の ImageChange トリガーを更新します。これにより、トリガーが新しい Oracle ベースのシステムイメージを使用するようになります。
前提条件
- まず、システムイメージのビルド に記載の手順を実施します。
手順
環境変数内の現在の 3scale リリースを保存します。
$ export THREESCALE_RELEASE=2.11
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_SYSTEM_PASSWORD
を削除します。Oracle Database で 3scale システムイメージを設定したら、
system-app
DeploymentConfig からORACLE_SYSTEM_PASSWORD
を削除します。新しいバージョンの 3scale にアップグレードするまで、もう一度は必要ありません。$ oc set env dc/system-app ORACLE_SYSTEM_PASSWORD-
関連情報
3scale と Oracle Database のサポートについては、Red Hat 3scale API Management のサポート対象設定 を参照してください。