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を作成します。

  1. 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

  2. weblogicDomainStoragePathプロパティのパスが存在し、1000:0の所有権があることを確認します。そうでない場合は、次のように作成する必要があります:

    $ sudo mkdir /scratch/k8s_dir/SOA
    $ sudo chown -R 1000:0 /scratch/k8s_dir/SOA
  3. create-pv-pvc.shスクリプトを実行します:

    $ cd ${WORKDIR}/create-weblogic-domain-pv-pvc
    $ ./create-pv-pvc.sh -i create-pv-pvc-inputs.yaml -o output_soainfra
  4. 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スクリプトは次のものをサポートします:

  • ドメイン・タイプ: soaosbおよび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でサポートされている値は、SMALLMEDおよび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です。