Oracle SOA Suiteドメインの環境の準備
Oracle SOA Suiteドメインのネームスペースの作成
デフォルト・ネームスペースを使用する場合を除き、ドメインのKubernetesネームスペース(soansなど)を作成します。ドメインを管理するには、ネームスペースにweblogic-operator=enabledというラベルを付けます。この項の残りのステップで、新しいネームスペースを使用します。詳細は、ドメイン実行の準備を参照してください。
$ kubectl create namespace soans
$ kubectl label namespace soans weblogic-operator=enabled
Oracleによって事前作成されたOracle SOA Suiteイメージには、UIDが1000のoracleユーザーがあり、デフォルト・グループはrootに設定されています。`weblogicDomainStoragePath`パスが`1000:0`のこの所有権を持つようにするには、ライフサイクル・スクリプトの一部として提供されるユーティリティ・スクリプトpv-pvc-helper.shを参照して、永続ストレージ上の共有ディレクトリの所有権および権限を変更できます。
たとえば、soansドメイン・ネームスペースで作成したPVC soainfra-domain-pvcのweblogicDomainStoragePathの所有権および権限を、次のステップで変更できます:
`soans`ネームスペースのPVC `soainfra-domain-pvc`およびマウントパス`/shared`を使用してヘルパー・ポッドを起動します:
$ pv-pvc-helper.sh -n soans -c soainfra-domain-pvc -m /shared -r
ヘルパー・ポッドが作成されたら、次のコマンドを使用して実行中のポッド・コンテナへのシェルを取得します。 $ kubectl -n soans exec -it pvhelper -- /bin/sh
実行中のポッド・コンテナへのシェルを取得したら、ディレクトリを/sharedに変更し、適切なchownまたはchmodコマンドを使用して所有権または権限を変更できます。例:
$ chown 1000:0 /shared/. && find /shared/. -maxdepth 1 ! -name '.snapshot' ! -name '.' -print0 | xargs -r -0 chown -R 1000:0
Oracle SOA Suiteドメインの永続ストレージの作成
作成したKubernetesネームスペースで、create-pv-pvc.shスクリプトを実行してドメインのPVおよびPVCを作成します。スクリプトを使用する手順に従って、Oracle SOA Suiteドメイン専用のPVおよびPVCを作成します。
-
PV作成用の構成パラメータをここで確認します。要件に基づいて、${WORKDIR}/create-weblogic-domain-pv-pvc/にあるcreate-pv-pvc-inputs.yamlファイルの値を更新します。Oracle SOA Suiteドメインの構成パラメータ値の例を次に示します:
-
baseName:
domain
-
domainUID:
soainfra
-
namespace:
soans
-
weblogicDomainStorageType:
HOST_PATH
-
weblogicDomainStoragePath:
/scratch/k8s_dir/SOA
-
-
weblogicDomainStoragePathプロパティのパスが存在し、1000:0の所有権があることを確認します。そうでない場合は、次のように作成する必要があります:
$ sudo mkdir /scratch/k8s_dir/SOA $ sudo chown -R 1000:0 /scratch/k8s_dir/SOA
-
create-pv-pvc.shスクリプトを実行します:
$ cd ${WORKDIR}/create-weblogic-domain-pv-pvc $ ./create-pv-pvc.sh -i create-pv-pvc-inputs.yaml -o output_soainfra
-
create-pv-pvc.shスクリプトは、指定された/path/to/output-directoryディレクトリの下にサブディレクトリpv-pvcsを作成し、PVおよびPVC用の2つのYAML構成ファイルを作成します。kubectl create -fコマンドを使用して、次の2つのYAMLファイルを適用し、PVおよびPVC Kubernetesリソースを作成します:
$ kubectl create -f output_soainfra/pv-pvcs/soainfra-domain-pv.yaml $ kubectl create -f output_soainfra/pv-pvcs/soainfra-domain-pvc.yaml
ドメイン資格証明を使用したKubernetesシークレットの作成
ドメインと同じKubernetesネームスペースで、管理アカウントのKubernetesシークレットusername
およびpassword
を作成します:
$ cd ${WORKDIR}/create-weblogic-domain-credentials
$ ./create-weblogic-credentials.sh -u weblogic -p Welcome1 -n soans -d soainfra -s soainfra-domain-credentials
詳細は、このドキュメントを参照してください。
kubectl get secret
コマンドを使用します。例:
$ kubectl get secret soainfra-domain-credentials -o yaml -n soans
apiVersion: v1
data:
password: T3JhZG9jX2RiMQ==
sys_password: T3JhZG9jX2RiMQ==
sys_username: c3lz
username: U09BMQ==
kind: Secret
metadata:
creationTimestamp: "2020-06-25T14:08:16Z"
labels:
weblogic.domainName: soainfra
weblogic.domainUID: soainfra
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data:
.: {}
f:password: {}
f:sys_password: {}
f:sys_username: {}
f:username: {}
f:metadata:
f:labels:
.: {}
f:weblogic.domainName: {}
f:weblogic.domainUID: {}
f:type: {}
manager: kubectl
operation: Update
time: "2020-06-25T14:08:16Z"
name: soainfra-rcu-credentials
namespace: soans
resourceVersion: "265386"
selfLink: /api/v1/namespaces/soans/secrets/soainfra-rcu-credentials
uid: 2d93941c-656b-43a4-8af2-78ca8be0f293
type: Opaque
RCU資格証明を使用したKubernetesシークレットの作成
データベース・スキーマの資格証明を含むKubernetesシークレットも作成する必要があります。ドメインを作成すると、このシークレットからRCU資格証明が取得されます。付属のサンプル・スクリプトを使用して、シークレットを作成します:
$ cd ${WORKDIR}/create-rcu-credentials
$ ./create-rcu-credentials.sh \
-u SOA1 \
-p Oradoc_db1 \
-a sys \
-q Oradoc_db1 \
-d soainfra \
-n soans \
-s soainfra-rcu-credentials
パラメータ値は次のとおりです:
- -u スキーマ所有者(通常ユーザー)のユーザー名(必須)。
- -p スキーマ所有者(通常ユーザー)のパスワード(必須)。
- -a SYSDBAユーザーのユーザー名(必須)。
- -q SYSDBAユーザーのパスワード(必須)。
- -d domainUID。例: soainfra
- -n ネームスペース。例: soans
- -s secretName。例: soainfra-rcu-credentials
kubectl get secret
コマンドを使用します。例:
$ kubectl get secret soainfra-rcu-credentials -o yaml -n soans
apiVersion: v1
data:
password: T3JhZG9jX2RiMQ==
sys_password: T3JhZG9jX2RiMQ==
sys_username: c3lz
username: U09BMQ==
kind: Secret
metadata:
creationTimestamp: "2020-06-25T14:08:16Z"
labels:
weblogic.domainName: soainfra
weblogic.domainUID: soainfra
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data:
.: {}
f:password: {}
f:sys_password: {}
f:sys_username: {}
f:username: {}
f:metadata:
f:labels:
.: {}
f:weblogic.domainName: {}
f:weblogic.domainUID: {}
f:type: {}
manager: kubectl
operation: Update
time: "2020-06-25T14:08:16Z"
name: soainfra-rcu-credentials
namespace: soans
resourceVersion: "265386"
selfLink: /api/v1/namespaces/soans/secrets/soainfra-rcu-credentials
uid: 2d93941c-656b-43a4-8af2-78ca8be0f293
type: Opaque
Oracleデータベースの作成
Oracle SOA Suiteドメインには、必要なスキーマがインストールされたデータベースが必要です。リポジトリ作成ユーティリティ(RCU)によって、これらのスキーマを作成できます。ドメインを作成する前に、データベースを設定する必要があります。KubernetesでOracle SOA Suiteを実行することで追加された要件はありません。同じ既存の要件が適用されます。
Oracle Database Operatorによって管理される単一インスタンス・コンテナ・データベースを作成するには、ここを参照してください。
必要なデータベースを作成するか、アクセスの詳細を取得したら、次のステップに進み、データベースに必要なスキーマを設定します。
リポジトリ作成ユーティリティの実行によるデータベース・スキーマの設定
スキーマの作成
RCUポッドでは、データベースのSYSDBAのユーザー名とパスワードがsys_usernameおよびsys_passwordフィールドに含まれるRCUポッドと同じネームスペースにシークレットを作成し、そのパスワード・フィールドにRCUスキーマに対して選択したパスワードも含める必要があります。
例:
kubectl -n default create secret generic oracle-rcu-secret \
--from-literal='sys_username=sys' \
--from-literal='sys_password=MY_SYS_PASSWORD' \
--from-literal='password=MY_RCU_SCHEMA_PASSWORD'
Oracle SOA Suiteのデータベース・スキーマを作成するには、create-rcu-schema.shスクリプトを実行します。
例:
cd ${WORKDIR}/create-rcu-schema
./create-rcu-schema.sh -h
usage: ./create-rcu-schema.sh -s <schemaPrefix> [-t <schemaType>] [-d <dburl>] [-n <namespace>] [-c <credentialsSecretName>] [-p <docker-store>] [-i <image>] [-u <imagePullPolicy>] [-o <rcuOutputDir>] [-r <customVariables>] [-l <timeoutLimit>] [-b <databaseType>] [-e <edition>] [-h]
-s RCU Schema Prefix (required)
-t RCU Schema Type (optional)
(supported values: osb,soa,soaosb, default: soa)
-d RCU Oracle Database URL (optional)
(default: oracle-db.default.svc.cluster.local:1521/devpdb.k8s)
-n Namespace for RCU pod (optional)
(default: default)
-c Name of credentials secret (optional).
(default: oracle-rcu-secret)
Must contain SYSDBA username at key 'sys_username',
SYSDBA password at key 'sys_password',
and RCU schema owner password at key 'password'.
-p OracleSOASuite ImagePullSecret (optional)
(default: none)
-i OracleSOASuite Image (optional)
(default: soasuite:release-version)
-u OracleSOASuite ImagePullPolicy (optional)
(default: IfNotPresent)
-o Output directory for the generated YAML file. (optional)
(default: rcuoutput)
-r Comma-separated custom variables in the format variablename=value. (optional).
(default: none)
-l Timeout limit in seconds. (optional).
(default: 300)
-b Type of database to which you are connecting (optional). Supported values: ORACLE,EBR
(default: ORACLE)
-e The edition name. This parameter is only valid if you specify type of database (-b) as EBR. (optional).
(default: 'ORA$BASE')
-h Help
NOTE: The c, p, i, u, and o arguments are ignored if an rcu pod is already running in the namespace.
./create-rcu-schema.sh \
-s SOA1 \
-t soaosb \
-d oracle-db.default.svc.cluster.local:1521/devpdb.k8s \
-n default \
-c oracle-rcu-secret \
-b EBR \
-i soasuite:release-version \
-r SOA_PROFILE_TYPE=SMALL,HEALTHCARE_INTEGRATION=NO
Oracle SOA Suiteドメインの場合、create-rcu-schema.shスクリプトは次のものをサポートします:
- ドメイン・タイプ:
soa
、osb
およびsoaosb
。-t
フラグを使用して、これらのいずれかを指定する必要があります。 - 接続するデータベースのタイプ: ORACLE、EBR。これらのうちの1つを-bフラグを使用して指定できます。デフォルトはORACLEです。14.1.2の場合はEBRを使用します。
- Oracle SOA Suiteの場合、
-r
フラグを使用してOracle SOAスキーマ・プロファイル・タイプを指定する必要があります。たとえば、-r SOA_PROFILE_TYPE=SMALL
です。SOA_PROFILE_TYPE
でサポートされている値は、SMALL
、MED
およびLARGE
です。
ノート:
LARGE
スキーマ・プロファイル・タイプを使用するには、Oracle Databaseでパーティション化機能が有効になっていることを確認します。
Kubernetes以外の環境と同様に、データベース・スキーマと対応するドメインの間のアソシエーションを必ず維持してください。これに役立つ特定の機能はありません。
スキーマの削除
スキーマを削除する場合は、drop-rcu-schema.shスクリプトを使用できます。
例:
cd ${WORKDIR}/create-rcu-schema
./drop-rcu-schema.sh -h
usage: ./drop-rcu-schema.sh -s <schemaPrefix> [-t <schemaType>] [-d <dburl>] [-n <namespace>] [-c <credentialsSecretName>] [-p <docker-store>] [-i <image>] [-u <imagePullPolicy>] [-o <rcuOutputDir>] [-r <customVariables>] [-b <databaseType>] [-e <edition>] [-h]
-s RCU Schema Prefix (required)
-t RCU Schema Type (optional)
(supported values: osb,soa,soaosb, default: soa)
-d RCU Oracle Database URL (optional)
(default: oracle-db.default.svc.cluster.local:1521/devpdb.k8s)
-n Namespace for RCU pod (optional)
(default: default)
-c Name of credentials secret (optional).
(default: oracle-rcu-secret)
Must contain SYSDBA username at key 'sys_username',
SYSDBA password at key 'sys_password',
and RCU schema owner password at key 'password'.
-p OracleSOASuite ImagePullSecret (optional)
(default: none)
-i OracleSOASuite Image (optional)
(default: soasuite:release-version)
-u OracleSOASuite ImagePullPolicy (optional)
(default: IfNotPresent)
-o Output directory for the generated YAML file. (optional)
(default: rcuoutput)
-r Comma-separated custom variables in the format variablename=value. (optional).
(default: none)
-b Type of database to which you are connecting (optional). Supported values: ORACLE,EBR
(default: ORACLE)
-e The edition name. This parameter is only valid if you specify type of database (-b) as EBR. (optional).
(default: 'ORA$BASE')
-h Help
NOTE: The c, p, i, u, and o arguments are ignored if an rcu pod is already running in the namespace.
./drop-rcu-schema.sh \
-s SOA1 \
-t soaosb \
-d oracle-db.default.svc.cluster.local:1521/devpdb.k8s \
-n default \
-c oracle-rcu-secret \
-b EBR \
-r SOA_PROFILE_TYPE=SMALL,HEALTHCARE_INTEGRATION=NO
Oracle SOA Suiteドメインの場合、drop-rcu-schema.shスクリプトは次のものをサポートします:
- ドメイン・タイプ: soa、osbおよびsoaosb。-tフラグを使用して、これらのいずれかを指定する必要があります。
- 接続するデータベースのタイプ: ORACLE、EBR。これらのうちの1つを-bフラグを使用して指定できます。デフォルトはORACLEです。14.1.2の場合はEBRを使用します。
- Oracle SOA Suiteの場合、-rフラグを使用してOracle SOAスキーマ・プロファイル・タイプを指定する必要があります。たとえば、-r SOA_PROFILE_TYPE=SMALLです。SOA_PROFILE_TYPEでサポートされる値は、SMALL、MEDおよびLARGEです。