11.2. システムイメージのビルド
本セクションでは、システムイメージをビルドする手順について説明します。
前提条件
- Oracle Database の準備 の手順をすべて実行しているようにしてください。
手順
GitHub リポジトリーから 3scale 用 OpenShift テンプレート のクローンを作成します。以下のコマンドを使用します。
git clone --branch 2.9.1.GA https://github.com/3scale/3scale-amp-openshift-templates.git
$ git clone --branch 2.9.1.GA https://github.com/3scale/3scale-amp-openshift-templates.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Oracle Database の Instant Client パッケージファイルを
3scale-amp-openshift-templates/amp/system-oracle/oracle-client-filesディレクトリーに置きます。 - 3scale 2.9 amp.yml テンプレートをダウンロードします。
-fオプションでbuild.ymlOpenShift テンプレートを指定して、oc new-appコマンドを実行します。oc new-app -f build.yml
$ oc new-app -f build.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -fオプションでamp.ymlOpenShift テンプレートを指定し、-pオプションでWILDCARD_DOMAINパラメーターに OpenShift クラスターのドメインを指定して、oc new-appコマンドを実行します。oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.com
$ oc new-app -f amp.yml -p WILDCARD_DOMAIN=mydomain.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
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"}]}}}}}}'$ 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"}]}}}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力します。
DATABASE_URLはOracle Database の準備で指定した Oracle Database を参照するように置き換えます。oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'$ oc patch secret/system-database -p '{"stringData": {"URL": "DATABASE_URL"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc start-buildコマンドを入力し、新しいシステムイメージをビルドします。oc start-build 3scale-amp-system-oracle --from-dir=.
$ oc start-build 3scale-amp-system-oracle --from-dir=.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドが完了するまで待ちます。ビルドの状態を確認するには、以下のコマンドを実行します。
oc get build <build-name> -o jsonpath="{.status.phase}"$ oc get build <build-name> -o jsonpath="{.status.phase}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ビルドが Complete の状態になるまで待ちます。
11.2.1. ImageChange トリガーの更新 リンクのコピーリンクがクリップボードにコピーされました!
システムイメージを使用する DeploymentConfig の ImageChange トリガーを更新します。これにより、トリガーが新しい Oracle ベースのシステムイメージを使用するようになります。
前提条件
- まず、システムイメージのビルド に記載の手順を実施します。
手順
環境変数内の現在の 3scale リリースを保存します。
export THREESCALE_RELEASE=2.9
$ export THREESCALE_RELEASE=2.9Copy to Clipboard Copied! Toggle word wrap Toggle overflow system-appImageChange トリガーを更新します。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$ 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-providerCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
system-appDeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。system-sidekiqImageChange トリガーを更新します。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$ 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-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
system-sidekiqDeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。system-sphinxImageChange トリガーを更新します。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$ 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-svcCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
system-sphinxDeploymentConfig の再デプロイメントがトリガーされます。再デプロイが完了し、対応する新規 Pod が使用できる状態になり、古い Pod が停止するまで待ちます。
関連情報
3scale と Oracle Database のサポートについては、Red Hat 3scale API Management のサポート対象設定 を参照してください。