2 Oracle Identity Role Intelligenceのインストールおよび構成

Oracle Identity Role Intelligenceのインストールおよび構成には、構成ファイルの設定、ウォレットの作成、Helmチャートのインストールおよびデータ・ロード・プロセスの開始が含まれます。

2.1 Kubernetes上のOIRIについて

OIRIでは、Kubernetesをコンテナ・オーケストレーション・システムとして使用します。

OIRIでは、HelmをKubernetesのパッケージ・マネージャとして使用します。これは、KubernetesでOIRIをインストールおよびアップグレードするために使用されます。

図2-1は、OIRIのデプロイメント・アーキテクチャを示しています。

図2-1 デプロイメント・アーキテクチャ

図2-1の説明が続く
「図2-1 デプロイメント・アーキテクチャ」の説明

OIRIデプロイメントには、次のコンポーネントが含まれています:

  • Oracle Identity Governance (OIG): これは、既存のOIG設定を表します。OIGはOIRIを設定するための前提条件であり、OIRIのアイデンティティ・プロバイダ(IDP)として機能します。その結果、OIRIにログインするすべてのユーザーがOIGに対して認証されます。これは、ロール・マイニングのデータをOIRIにロードまたはインポートするためにも使用できます。OIRIにデータをインポートするには、OIGデータベースへのアクセスが必要です。データは、データ取込みコマンドライン・インタフェース(ding-cli)コンポーネントを介してOIRIにインポートされます。

  • OIRIコマンドライン・インタフェース(oiri-cli): このコンポーネントは、OIRIを構成およびインストールするために使用されます。このCLIは、Kubernetesクラスタ内でポッドとして実行されます。すべての構成スクリプトおよびHelmチャートは、このポッド内に存在します。kubectlやHelmなどのコマンドライン・ユーティリティもコンテナ内から使用できます。このCLIは、ウォレットおよびキーストアの作成にも使用されます。ウォレットは、OIRIデータベース、OIGデータベース、KeyStoreおよびOIGサービス・アカウントの資格証明を安全に格納するために使用されます。キーストアには、Secure Sockets Layer (SSL)およびトークン署名証明書が含まれています。このVMは、OIRIおよびOIGデータベースにも接続できる必要があります。

  • OIRIクラスタ: OIRIサービス、OIRI UI、Spark履歴サーバーおよびフロントエンド・ロード・バランサは、Helmチャートのインストールの一部としてoiri-cliコンテナからインストールされます。Spark履歴サーバーはKubernetesクラスタの外部に公開されず、kubectl port-formwardを使用してアクセスできます。「OIRI Helmチャートのインストール」を参照してください。OIRIサービスは、OIRI UIにログインするユーザーを認証するために、OIGと接続しています。これは、マイニングしたロールをOIGに発行するためにも使用されます。

  • データ取込みコマンドライン・インタフェース(ding-cli): これは、データ・インポート・プロセスを実行するためにETL管理者が使用するセキュアなVMです。このVMは、データ・インポート・ジョブをトリガーするために、Kubernetesクラスタへの接続およびアクセスが必要です。データ・インポート・ジョブは、Sparkクラスタ内で実行されます。このVMは、OIRIおよびOIGデータベースと接続できる必要があります。

  • Sparkクラスタ: これは、一時的なSparkクラスタです。データ・インポート・ジョブのリクエストがding-cliからトリガーされると、Kubernetesスケジューラはドライバおよびエグゼキュータ・ポッドをスピンします。データ・インポート・ジョブが完了すると、エグゼキュータ・ポッドが終了し、ドライバ・ポッドの状態がRunningからCompletedに変更されます。このSparkクラスタは、OIRIおよびOIGデータベースと接続できる必要があります。

  • P永続ボリューム(PV): これは、ネットワーク・ファイル・システム(NFS)サーバーにマウントされた永続ボリュームです。これは、ログなど、永続化する必要があるすべての構成ファイルおよびデータを格納するために使用されます。すべてのコンポーネントがPVにアクセスできる必要があります。

  • コンテナ・レジストリ: これはDockerレジストリであり、ここから必要なDockerイメージがプルされます。オプションで、イメージに.tarファイルを使用し、すべてのVMおよびKubernetesノードでイメージを手動でロードすることもできます。

2.2 OIRIをインストールするための前提条件

OIRIをKubernetesにインストールするための前提条件は、次のとおりです:

  • オンプレミスまたはコンテナベースで、12cリリース2 (12.2.0.1)以降のOracle Databaseバージョンがインストールされ、実行されています。Oracle Databaseバージョン18.3および19.3もサポートされています。

    ノート:

    OIRIデータベースを12.1.xから12.2.x、18cまたは19cにアップグレードした場合は、データベース・パラメータcompatibleを12.2以上の値に更新する必要があります。これが行われないと、一部のOIRIデータベース・オブジェクトの作成時に、ORA-00972: 識別子が長すぎますというエラーが表示されます。
  • Oracle Identity Governance 12c (12.2.1.4.0)がインストールされ、Oracle Identity Governanceバンドル・パッチ12.2.1.4.210428が適用されています。

  • Dockerバージョン19.03.11以上およびkubectlを備えたKubernetesクラスタ(v1.17以上)がインストールされています。Kubernetesクラスタのインストールの詳細は、Kubernetesのドキュメントを参照してください。

  • ネットワーク・ファイル・システム(NFS)が使用可能です。NFSは、ノード間で使用する永続ボリュームを作成するために使用されます。

  • Oracle Identity Governance (OIG)でユーザーを作成し、OIRIにログインします。『Oracle Identity Governanceでのセルフ・サービス・タスクの実行』ユーザーの作成に関する項を参照してください。

  • OIGからユーザーを認証するための認証構成が完了しています。OIGを使用した認証の構成の詳細は、「Oracle Identity Governanceでの認証の構成」を参照してください。

  • アイデンティティ監査機能がOIGで有効になっています。OIGでのアイデンティティ監査の有効化の詳細は、『Oracle Identity Governanceでのセルフ・サービス・タスクの実行』アイデンティティ監査の有効化に関する項を参照してください。

2.3 システム要件と動作保証情報

インストールを実行する前に、現在の環境がシステム要件(ハードウェアとソフトウェアの要件、ディスク領域とメモリーの最小要件、必要なシステム・ライブラリ、パッケージ、パッチなど)を満たしていることを確認します。

OIRIをインストールするための最小システム要件は、次のとおりです:

  • スタンドアロン・ホスト上にOIRIをインストールする場合:
    • 16GBのRAM
    • 50GBのディスク領域
    • 2 CPU
  • kubernetesクラスタ上にOIRIをインストールする場合:
    • ノードの数: 3
    • ノード当たり16GBのRAM
    • ノード当たり2 CPU (Intel VTなどの仮想化サポート付き)
    • 150GBのディスク領域

動作要件のドキュメントには、サポートされているインストール・タイプ、プラットフォーム、オペレーティング・システム、データベース、JDKおよびサードパーティ製品が記載されています。

http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html

2.4 Oracle Identity Governanceでの認証の構成

Oracle Identity Governance (OIG)は、OIRIユーザーおよびOIRIアプリケーションへのユーザー・アクセスを管理します。

OIGを使用してOIRIへの認証を構成するには:

  1. OIRIにログインするためのユーザー(janedoeなど)を作成します。
  2. OIGでOIRIロール・エンジニア・ロールを作成します。これを行うには、ロールOrclOIRIRoleEngineerを作成し、それをアプリケーション・ユーザー(janedoeなど)に割り当てます。ロールOrclOIRIRoleEngineerを持つユーザーのみが、OIRIアプリケーションにログインできます。『Oracle Identity Governanceでのセルフ・サービス・タスクの実行』ロールの作成に関する項を参照してください。
  3. バック・チャネル認証およびロール発行タスクの目的で、OIRIでサービス・プリンシパルとして使用するユーザー(OIRIServiceAccountUserなど)をOIGに作成します。これは、次の目的を果たすためです:
    • 起動時に、OIRIサービスは、OIRIServiceAccountUserなどのサービス・アカウント・ユーザーを使用してOIGで認証します。

    • OIRIアプリケーションでは、アプリケーション・ユーザー・ログイン時に、サービス・アカウントを使用してOIGでアプリケーション・ユーザーを認証します。janedoeなどのアプリケーション・ユーザーをOIGで認証するには、OIRIServiceAccountUserなどのサービス・アカウント・ユーザーには、ユーザー-表示/検索機能を持つ管理ロールが必要です。これは、サービス・アカウント・ユーザーがユーザーを認証するためにOIGでアプリケーション・ユーザーを検索する必要があるため、必要です。

    • OIRIは、サービス・アカウント・ユーザーを使用して、ロールをOIGに発行します。OIGにロールを発行するには、OIRIServiceAccountUserなどのサービス・アカウント・ユーザーに、次の機能を持つ管理ロールが必要です:

      • ユーザー - 表示/検索
      • ロール - 作成
      • アクセス・ポリシー - 作成

      OIGでの管理ロールの作成の詳細は、『Oracle Identity Governanceでのセルフ・サービス・タスクの実行』管理ロールの作成に関する項を参照してください。

      ノート:

      • 前述の機能を持つロールは、「制御の範囲」および「組織」が「上位」である必要があります。これは、プロビジョニングされたアプリケーションが異なる組織に属している可能性があるため、アクセス・ポリシーを作成するのに必要です。

      • OIGのOIRIサービス・アカウントのパスワードは、パスワード・ポリシーに従って期限切れになります。OIRIサービス・アカウント・パスワードがOIGで更新されたときに、OIRIウォレットのサービス・アカウント・パスワードを更新するには、OIGSAモードを使用して「ウォレットの検証および更新」のステップ2を実行します。OIRIウォレットでサービス・アカウントのパスワードを更新した後、OIGにロールを発行する前にOIRIサービスを再起動します。

2.5 コンテナ・イメージのロード

OIRIサービスは、次の4つのコンテナ・イメージで構成されます:

  • oiri: OIRIサービス
  • oiri-cli: OIRIコマンドライン・インタフェース
  • oiri-ding: データ・インポート用
  • oiri-ui: Identity Role Intelligenceユーザー・インタフェース

次を参照してイメージをロードできます:

2.5.1 コンテナ・レジストリからのコンテナ・イメージの使用

コンテナ・イメージは、container-registry.oracle.commiddleware/内にあるOIRIリポジトリからダウンロードできます。

イメージをプルするには:

  1. コンテナ環境からOracle Container Registryにログインし、プロンプトが表示されたらOracle SSOのユーザー名およびパスワードを入力します:
    $ docker|podman login container-registry.oracle.com

    プロンプト:

    Username: <USERNAME>
        Password: <PASSWORD>
  2. 次のコマンドを実行して、oiri-cliイメージをプルします:
    $ docker|podman pull container-registry.oracle.com/middleware/oiri-cli:latest

    ノート:

    その最新のパッチセットをダウンロードするには、次のコマンドを実行して最新のCPUをプルする必要があります:
    $ docker|podman pull container-registry.oracle.com/middleware/oiri-cli_cpu:<TAG>
    $ docker|podman pull container-registry.oracle.com/middleware/oiri-ding_cpu:<TAG>
    $ docker|podman pull container-registry.oracle.com/middleware/oiri-ui_cpu:<TAG>
    $ docker|podman pull container-registry.oracle.com/middleware/oiri_cpu:<TAG>

    たとえば:

    $ docker|podman pull container-registry.oracle.com/middleware/oiri-cli_cpu:12.2.1.4.230310
    $ docker|podman pull container-registry.oracle.com/middleware/oiri-ding_cpu:12.2.1.4.230310
    $ docker|podman pull container-registry.oracle.com/middleware/oiri-ui_cpu:12.2.1.4.230310
    $ docker|podman pull container-registry.oracle.com/middleware/oiri_cpu:12.2.1.4.230310

    「構成ファイルの設定」の説明に従って、OIRIをインストールして構成するステップを続行します。

2.6 構成ファイルの設定

データ・インポート(またはデータ取込み)およびHelmチャートの構成に必要なファイルを設定するには:

  1. NFSで次のディレクトリを作成します:

    Kubernetesクラスタ管理者は次のステップを実行します:

    $ mkdir <OIRI_SHARE>
    $ mkdir <OIRI_DING_SHARE>
    $ mkdir <OIRI_WORK_SHARE>

    たとえば:

    $ mkdir /nfs/oiri
    $ mkdir /nfs/ding
    $ mkdir /nfs/k8s

    ノート:

    rootではなく、OIRIユーザーとしてディレクトリを作成します。rootとして作成すると、 setupConfFiles.shの実行時に権限エラーが発生します。
  2. 次のコマンドを実行して、ステップ1で作成したディレクトリに対する書込み権限を確認します:

    Kubernetesクラスタ管理者は次のステップを実行します:

    $ chmod -R 777 /nfs/ding /nfs/oiri /nfs/k8s
  3. Kube構成を設定します。これを行うには:

    Kubernetesクラスタ管理者は次のステップを実行します:

    1. OIRIおよびDINGのネームスペースを作成します。
      $ kubectl create namespace oirins
      namespace/oirins created
      $ kubectl create namespace dingns
      namespace/dingns created
    2. 次の内容を含むoiri-service-account.yamlを作成します。<OIRINS>をOIRIネームスペースに、<DINGNS>をDINGネームスペースに置き換えます。
      apiVersion: v1
      kind: ServiceAccount
      metadata:  
        name: oiri-service-account
      namespace: <OIRINS>
      ---apiVersion: v1
      kind: Secret
      type: kubernetes.io/service-account-token
      metadata:  
        name: oiri-service-account-secret
        namespace: oiri
        annotations:
          kubernetes.io/service-account.name: "oiri-service-account"
      ---apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: oiri-ns-role
        namespace: <OIRINS>
      rules:
      - apiGroups: ["*"]
        resources: ["*"]
        verbs: ["*"]
      ---apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        name: ding-ns-role
        namespace: <DINGNS>
      rules:
      - apiGroups: ["*"]
        resources: ["*"]
        verbs: ["*"]
      ---kind: ClusterRole
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
        name: oiri-ingress-nginx-clusterrole
      rules:
      - apiGroups: [""]
        resources: ["configmaps", "endpoints", "nodes", "pods", "secrets"]
        verbs: ["watch", "list"]
      - apiGroups: [""]
        resourceNames: ["<OIRINS>"]
        resources: ["namespaces"]
        verbs: ["get"]
      - apiGroups: [""]
        resources: ["nodes"]
        verbs: ["get"]
      - apiGroups: [""]
        resources: ["services"]
        verbs: ["get", "list", "watch"]
      - apiGroups: [""]
        resources: ["events"]
        verbs: ["create", "patch"]
      - apiGroups: ["extensions"]
        resources: ["ingresses"]
        verbs: ["get", "list", "watch"]
      - apiGroups: ["extensions"]
        resources: ["ingresses/status"]
        verbs: ["update"]
      - apiGroups: ["networking.k8s.io"]
        resources: ["ingresses/status"]
        verbs: ["update"]
      - apiGroups: ["networking.k8s.io"]
        resources: ["ingresses", "ingressclasses"]
        verbs: ["create", "delete", get", "list", "watch"]
      ---apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: oiri-ingress-nginx-clusterrolebinding-<OIRINS>
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: oiri-ingress-nginx-clusterrole
      subjects:
      - namespace: <OIRINS>
        kind: ServiceAccount
        name: oiri-service-account
      ---apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: oiri-clusterrolebinding-<OIRINS>
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: system:persistent-volume-provisioner
      subjects:
      - namespace: <OIRINS>
        kind: ServiceAccount
        name: oiri-service-account
      ---apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: oiri-rolebinding
        namespace: <OIRINS>
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: oiri-ns-role
      subjects:
      - namespace: <OIRINS>
        kind: ServiceAccount
        name: oiri-service-account
      ---apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: ding-rolebinding
        namespace: <DINGNS>
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: ding-ns-role
      subjects:
      - namespace: <OIRINS>
        kind: ServiceAccount
        name: oiri-service-account
    3. 次のkubectlコマンドを実行します。必要に応じて、<OIRINS>をOIRIネームスペースに置き換えます。
      $ kubectl apply -f oiri-service-account.yaml
      $ TOKEN=`kubectl -n oiri get secret oiri-service-account-secret -o jsonpath='{.data.token}'| base64 --decode`
      $ kubectl -n oiri get secret oiri-service-account-secret -o jsonpath='{.data.ca\.crt}'| base64 --decode > ca.crt
      $ K8SURL=`grep server: $KUBECONFIG | sed 's/server://;s/ //g'`

      ノート:

      K8SURLを取得するコマンドは、単一のクラスタが構成されている場合にのみ機能します。返されるURLが、OIRIのインストール先のURLであることを確認してください。
    4. ca.crtをKubernetesディレクトリにコピーし、ステップ5.cで作成されたTOKENをリストして、OIRIインストール管理者とca.crtおよびTOKENを共有します
      $ cp ca.crt /nfs/k8s
  4. OIRI CLIを構成し、起動します

    OIRIインストール管理者は次のステップを実行します:

    1. OIRIインストール管理者は、OIRIネームスペースの環境変数と作業ディレクトリを設定します。
      OIRINS=oiri
      WORKDIR=/work/oiri/
      TOKEN=<Token Shared by the Kubernetes Cluster Admin>
      K8SURL=<Kubernetes API Server URL shared by the Kubernetes Cluster Admin>
      $ kubectl config --kubeconfig=$WORKDIR/oiri_config set-cluster oiri-cluster --server=$K8SURL --certificate-authority=$WORKDIR/ca.crt --embed-certs=true
      $ kubectl config --kubeconfig=$WORKDIR/oiri_config set-credentials oiri-service-account --token=$TOKEN
      $ kubectl config --kubeconfig=$WORKDIR/oiri_config set-context oiri --user=oiri-service-account --cluster=oiri-cluster
      $ kubectl config --kubeconfig=$WORKDIR/oiri_config use-context oiri

      これらのコマンドは、<WORKDIR>の場所にoiri_configというファイルを生成します。このファイルには、Kubernetesクラスタの詳細が含まれます。

    2. OIRIインストール管理者は、コンテナ・レジストリ・シークレットを作成します。

      コンテナ・レジストリを使用しており、必要に応じてコンテナ・イメージをプルする場合は、コンテナ・レジストリのログイン詳細を含むシークレットを作成する必要があります。コンテナ・イメージをローカルにステージングした場合は、このステップは必要ありません。

      コンテナ・レジストリ・シークレットを作成するには、次のコマンドを使用します

      $ kubectl create secret -n <NAMESPACE> docker-registry regcred --docker-server=<REGISTRY_ADDRESS> --docker-username=<USERNAME> --docker-password=<PASSWORD>

      説明:

      • NAMESPACEは、OIRI/DINGネームスペースです。
      • REGISTRY_ADDRESSは、レジストリの場所です。例: container-registry.oracle.com
      • USERNAMEは、レジストリにログインするために使用するユーザーの名前です。
      • PASSWORDは、レジストリ・ユーザーのパスワードです。
      たとえば:
      $ kubectl create secret \
      -n oiri docker-registry regcred \
      --docker-server=container-registry.oracle.com \
      --docker-username=myemail@email.com \
      --docker-password=<password>
      $ kubectl create secret \
      -n ding docker-registry regcred \
      --docker-server=container-registry.oracle.com \
      --docker-username=myemail@email.com \
      --docker-password=<password>
    3. 次の内容を含むoiri-cli.yamlというファイルを作成します。
      apiVersion: v1
      kind: Pod
      metadata:
        name: oiri-cli
        namespace: <OIRINS>
        labels:
          app: oiricli
      spec:
        restartPolicy: OnFailure
        volumes:
          - name: oiripv
            nfs:
              server: <PVSERVER>
              path: <OIRI_SHARE>
          - name: dingpv
            nfs:
              server: <PVSERVER>
              path: <OIRI_DING_SHARE>
          - name: workpv
            nfs:
              server: <PVSERVER>
              path: <OIRI_WORK_SHARE>
        containers:
        - name: oiricli
          image: <OIRI_CLI_IMAGE>:<OIRICLI_VER>
          volumeMounts:
            - name: oiripv
              mountPath: /app/oiri
            - name: dingpv
              mountPath: /app
            - name: workpv
              mountPath: /app/k8s
          command: ["/bin/bash", "-ec", "tail -f /dev/null"]
        imagePullSecrets:
          - name: regcred

      説明:

      • OIRINSは、OIRIオブジェクトを保持するために使用するネームスペースの名前です。
      • PVSERVERは、永続ボリュームをホストするNFSサーバーのIPアドレスです。
      • OIRI_SHAREは、OIRI永続ボリュームのNFSマウント場所です。
      • OIRI_DING_SHAREは、OIRI Ding永続ボリュームのNFSマウント場所です。
      • OIRI_WORK_SHAREは、OIRI作業永続ボリュームのNFSマウントです。
      • OIRI_CLI_IMAGEは、OIRI CLIイメージ・ファイルの名前です。コンテナ・レジストリを使用している場合、名前の前にコンテナ・レジストリ名が付けられます。たとえば:
        container-registry.oracle.com/idm/oiri-cli
         
      • OIRICLI_VERは、使用するイメージのバージョンです。たとえば:
        12.2.1.4.latest
         
      • ImagePullSecrets
        コンテナ・レジストリを使用している場合のみ必要です
        regcred
        格納されているレジストリ資格証明を使用して作成したKubernetesシークレットの名前です。

      たとえば:

      apiVersion: v1
      kind: Pod
      metadata:
        name: oiri-cli
        namespace: oiri
        labels:
          app: oiricli
      spec:
        restartPolicy: OnFailure
        volumes:
          - name: oiripv
          nfs:
            server: 100.69.233.106
            path: /nfs/oiri
          - name: dingpv
          nfs:
            server: 100.69.233.106
            path: /nfs/ding
          - name: workpv
          nfs:
            server: 100.69.233.106
            path: /nfs/k8s
        containers:
        - name: oiricli
        image: container-registry.oracle.com/idm/oiri-cli:12.2.1.4.02106
        volumeMounts:
          - name: oiripv
            mountPath: /app/oiri
          - name: dingpv
            mountPath: /app
          - name: workpv
            mountPath: /app/k8s
        command: ["/bin/bash", "-ec", "tail -f /dev/null"]
        imagePullSecrets:
          - name: regcred
       
    4. 次のコマンドを使用して、管理CLIポッドを起動します。
      $ kubectl apply -f oiri-cli.yaml

      ノート:

      例によって、OIRI-CLI内からコマンドを実行するように求められた場合は、次に示すように実行中のポッドに接続し、指定したとおりにコマンドを実行します。
      $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
    5. CLIポッドにファイルをコピーします。

      次のコマンドを使用して、ca.crtおよびoiri_configファイルをOIRI-CLIポッドにコピーします。

      $ OIRINS=oiri
      $ WORKDIR=/work/oiri
      $ cp $WORKDIR/ca.crt $OIRINS/oiri-cli:/app/k8s 
      $ cp $WORKDIR/oiri_config $OIRINS/oiri-cli:/app/k8s/config

      oiri-cliポッドに接続し、ファイル権限を設定します。

       $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
      $ chmod 400 /app/k8s/config
  5. 次のコマンドを実行して、構成ファイルを設定します:
    1. oiri-cliポッドに接続します。
      $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
    2. 次のコマンドを使用して、構成ファイルを設定します:
      [oiri@1234 scripts]$ ./setupConfFiles.sh -m prod \
        --oigdbhost {OIG_DB_HOST} \
        --oigdbport {OIG_DB_PORT} \
        --oigdbsname {OIG_DB_SERVICE_NAME} \
        --oiridbhost {OIRI_DB_HOST} \
        --oiridbport {OIRI_DB_PORT} \
        --oiridbsname {OIRI_DB_SERVICE} \
        --sparkmode {SPARK_MODE} \
        --dingnamespace {DING_NAMESPACE} \
        --dingimage {DING_IMAGE} \
        --imagepullsecret {IMAGE_PULL_SECRET} \
        --k8scertificatefilename {KUBERNETES_CERTIFICATE_FILE_NAME} \
        --sparkk8smasterurl {KUBERNETES_MASTER_URL} \
        --oigserverurl {OIG_SERVER_URL} \
        

      たとえば:

      [oiri@1234 scripts]$ ./setupConfFiles.sh -m prod \
        --oigdbhost oigdbhost1.example.com \
        --oigdbport 1234 \
        --oigdbsname oimdb.example.com \
        --oiridbhost OIRI_DB_HOST_IP_ADDRESS \
        --oiridbport 1521 \
        --oiridbsname oiripdb \
        --sparkmode k8s \
        --dingnamespace dingns \
        --dingimage oiri-ding-12.2.1.4:latest \
        --imagepullsecret regcred \
        --k8scertificatefilename ca.crt \
        --sparkk8smasterurl k8s://https://IP_ADDRESS:PORT \
        --oigserverurl http://oigdbhost1.example.com:14000 \
        

      ノート:

      このステップで提供される./setupConfFiles.shコマンドの例は、サンプル・コマンドです。このコマンドで渡すことができるパラメータの詳細は、次のトピックを参照してください:

      出力は次のようになります:

      INFO: OIG DB as source for ETL is true
      INFO: Setting up /app/data/conf/config.yaml
      INFO: Setting up /app/data/conf/data-ingestion-config.yaml
      INFO: Setting up /app/data/conf/custom-attributes.yaml
      INFO: Setting up /app/oiri/data/conf/application.yaml
      INFO: Setting up /app/oiri/data/conf/authenticationConf.yaml
      INFO: Setting up /app/data/conf/dbconfig.yaml

      ノート:

      OIRI DBCSの設定で./setupconfFiles.shコマンドを実行する場合、--oiridbsnameパラメータのCDBサービス名ではなくPDBサービス名を指定します。

  6. 次のコマンドを実行して、構成ファイルが生成されたことを確認します:

    コマンド:

    [oiri@1234 scripts]$ ls /app/data/conf/

    出力:

    config.yaml custom-attributes.yaml data-ingestion-config.yaml dbconfig.yaml

    コマンド:

    [oiri@1234 scripts]$ ls /app/oiri/data/conf

    出力:

    application.yaml authenticationConf.yaml
  7. オプションで、次のコマンドを実行して、構成ファイルを更新できます:
    $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
     
    [oiri@1234 scripts]$ ./updateConfig.sh --parameter_name_1 parameter_value_1 ...... --parameter_name_n parameter_value_n
    

    たとえば、OIRIデータベース・ホストをnewhostに更新する場合は、次のコマンドを実行します:

    [oiri@1234 scripts]$ ./updateConfig.sh --oiridbhost newhost

    ノート:

  8. 次のコマンドを実行して、Helmチャートに使用するvalues.yamlファイルを設定します:

    ノート:

    values.yamlファイルの設定に必要なパラメータの詳細は、「Helmチャート構成値」を参照してください。

    $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
     
    [oiri@1234 scripts]$ ./setupValuesYaml.sh \
       --oiriapiimage {OIRI_API_IMAGE} \
       --oirinfsserver {OIRI_NFS_SERVER} \
       --oirinfsstoragepath {OIRI_NFS_PATH} \
       --oirinfsstoragecapacity {OIRI_NFS_STORAGE_CAPACITY} \
       --oiriuiimage {OIRI_UI_IMAGE} \
       --dingimage {DING_IMAGE} \
       --oirinamespace [OIRI_NAMESPACE] \
       --dingnamespace {DING_NAMESPACE} \
       --dingnfsserver {OIRI_NFS_SERVER} \
       --dingnfsstoragepath {DING_NFS_STORAGE_PATH} \
       --dingnfsstoragecapacity {DING_NFS_STORAGE_CAPACITY} \
       --ingresshostname {INGRESS_HOSTNAME} \
       --sslsecretname (SSL_SECRET_NAME)

    たとえば:

    [oiri@1234 scripts]$ ./setupValuesYaml.sh \
       --oiriapiimage oiri/oiri:latest \
       --oirinfsserver oirihost.example.com \
       --oirinfsstoragepath /nfs/oiri \
       --oirinfsstoragecapacity 10Gi \
       --oiriuiimage oiri/oiri-ui:latest \
       --dingimage oiri/oiri-ding:latest \
       --oirinamespace oirins \
       --dingnamespace dingns \
       --dingnfsserver oirihost.example.com \
       --dingnfsstoragepath /nfs/ding \
       --dingnfsstoragecapacity 10Gi \
       --ingresshostname oirihost.example.com \
       --sslsecretname "oiri-tls-cert"
  9. 次のコマンドを実行して、values.yamlが生成されたことを確認します:
    $ ls /app/k8s/
    

    出力は次のようになります:

    values.yaml
  10. オプションで、次のコマンドを実行して、Helmの値を更新します:
    $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
     
    $ ./updateValuesYaml.sh --parameter_name_1 parameter_value_1 ...... --parameter_name_n parameter_value_n

    たとえば、oiriapiimageを更新する場合は、次のコマンドを実行します:

    $ ./updateValuesYaml.sh --oiriapiimage oiri-12.2.1.4:latest

2.7 ソース構成に必要なパラメータ

表2-1は、OIRIデータベース、OIGデータベース、OIGサーバーおよびETLソースの構成に必要なパラメータを示しています。

表2-1 ソース構成パラメータ

パラメータ 説明 必須 デフォルト値 引数 引数短縮形

OIG DBホスト

OIGデータベースのホスト名。

この値は、OIGデータベースをETLのソースとして指定するために必要です。

いいえ

なし

--oigdbhost

-oigdbh

OIG DBポート

OIGデータベースのポート番号。

この値は、OIGデータベースをETLのソースとして指定するために必要です。

いいえ

なし

--oigdbport

-oigdbp

OIG DBサービス名

OIGデータベースのサービス名。

この値は、OIGデータベースをETLのソースとして指定するために必要です。

いいえ

なし

--oigdbsname

-oigdbs

OIRI DBホスト

OIRIデータベースのホスト名。

はい

なし

--oiridbhost

-oiridbh

OIRI DBポート

OIRIデータベースのポート番号。

はい

なし

--oiridbport

-oiridbp

OIRI DBサービス

OIRIデータベースのサービス名。OIRI DBCS設定を使用している場合は、PDBサービス名を指定します。

はい

なし

--oiridbsname

-oiridbs

ETLのソースとしてのOIG DB

OIGデータベースをETLのソースとして有効にするには、これをtrueに設定します。

いいえ

true

--useoigdbforetl

-uoigdb

ETLのソースとしてのフラット・ファイル

フラット・ファイルをETLのソースとして有効にするには、これをtrueに設定します

 

いいえ

false

--useflatfileforetl

-uff

OIGサーバーURL

OIGサーバーのURL。

OIGサービスがOIRIと同じK8sクラスタ内にある場合、通常、このパラメータはhttp://<OIMサービス名>.<ネームスペース>.svc.cluster.local:14000という形式になります

はい

なし

--oigserverurl

-oigsu

OIG接続タイムアウト

接続タイムアウト間隔(ミリ秒)。

いいえ

10000

--oigconnectiontimeout

-oigct

OIG読取りタイムアウト

読取りタイムアウト間隔(ミリ秒)。

いいえ

10000

--oigreadtimeout

-oigrt

OIGキープ・アライブ・タイムアウト

キープ・アライブ・タイムアウトはキープ・アライブ戦略で使用されます。この戦略では、まずヘッダーに記載されているホストのキープ・アライブ・ポリシーを適用しようとします。その情報がレスポンス・ヘッダーに存在しない場合、--oigkeepalivetimeout (つまり10)の期間、キープ・アライブ接続が行われます

いいえ

10

--oigkeepalivetimeout

-oigkat

OIG接続プール最大数

OIRIデータベース接続プール内の接続の合計数。

いいえ

15

--oigconnectionpoolmax

-oigcpmx

ルート当たりのOIG接続数

(任意の)ルート当たりの最大接続数。

いいえ

15

--oigconnectionpoolmaxroute

-oigcpmr

OIGプロキシURI

OIGプロキシURI

いいえ

 

--oigproxyuri

-oigpuri

OIGプロキシ・ユーザー名

OIGプロキシ・ユーザー名

いいえ

 

--oigproxyusername

-oigpu

OIGプロキシ・パスワード

OIGプロキシ・パスワード

いいえ

 

--oigproxypassword

-oigpp

キー・ストア名

キー・ストア名

いいえ

 

--keystorename

-ksn

2.8 データ・インポートに必要な追加パラメータ

表2-2は、データ・インポートの構成に必要な追加パラメータを示しています。

表2-2 データ・インポートの追加パラメータ

パラメータ 説明 必須 デフォルト値 引数 引数短縮形

Sparkイベント・ログ有効

このフラグにより、Spark履歴サーバーで使用されるイベント・ログでジョブ履歴を表示できます。このフラグに使用できる値はtrue/falseです。falseに設定すると、イベント・ログは生成されず、Spark履歴サーバーでジョブ履歴を表示できません。

いいえ

true

--sparkeventlogsenabled

-sele

Sparkモード

サポートされている値は、localおよびk8sです。このパラメータの値がlocalの場合、データ・インポートはding-cliコンテナ内で実行されます。分散方式でデータ・インポートを実行しない場合は、ローカル・モードを使用することをお薦めします。これは、小規模なデータ・セットに最適です。このモードは、大規模なデータ・セットや水平スケーリングを行う場合には使用しないでください。大規模なデータ・セットには、k8sモードを使用することをお薦めします。

いいえ

local

--sparkmode

-sm

Spark K8SマスターURL

これは、k8s://<API_SERVER_HOST>:<k8s_API_SERVER_PORT>という形式のURLである必要があります。ポートは、HTTPSポート443であっても、常に指定する必要があります。<API_SERVER_HOST>および<k8s_API_SERVER_PORT>の値は、Kube構成で確認できます。

はい(Sparkモード・パラメータの値がk8sの場合)。値がlocalの場合は、必須ではありません。

なし

--sparkk8smasterurl

-skmu

Dingネームスペース

これは、ETLのSparkドライバ・ポッドおよびエグゼキュータ・ポッドを開始するネームスペースの値です

いいえ

Ding

--dingnamespace

-dns

Dingイメージ

これは、Sparkドライバおよびエグゼキュータ・ポッドのスピンアップに使用されるdingイメージの名前です。このイメージには、ETLを実行するためのロジックが含まれています。

はい(Sparkモード・パラメータの値がk8sの場合)。値がlocalの場合は、必須ではありません。

なし

--dingimage

-di

エグゼキュータの数

これは、Kubernetesクラスタで実行されるエグゼキュータ・インスタンスの数です。これらのエグゼキュータは、ETLジョブが完了するとすぐに終了します。

いいえ

3

--numberofexecutors

-noe

イメージ・プル・シークレット

これは、レジストリからdingイメージをプルするKubernetesシークレット名です。これは、コンテナ・レジストリからDockerイメージを使用する場合にのみ必要です。

いいえ

なし

--imagepullsecret

-ips

Kubernetes証明書ファイル名

これは、Kubernetes APIサーバーと安全に通信するために使用するKubernetes証明書名です。

はい(Sparkモード・パラメータの値がk8sの場合)。値がlocalの場合は、必須ではありません。

なし

--k8scertificatefilename

-kcfn

ドライバ・リクエスト・コア

これは、ドライバ・ポッドのCPUリクエストを指定するためのものです。このパラメータの値は、Kubernetesの規則に準拠しています。CPUの意味の詳細は、KubernetesドキュメントのCPUの意味に関する項を参照してください。

値の例は、0.1、500m、1.5または5で、CPU単位の定義は、KubernetesドキュメントのCPU単位に関する項に記載されています。

これは、ドライバ・ポッドCPUリクエストを指定するspark.driver.coresが設定されている場合、それよりも優先されます。

いいえ

0.5

--driverrequestcores

-drc

ドライバ制限コア

これは、ドライバ・ポッドのハードCPU制限を指定するためのものです。

CPU制限の詳細は、ポッドおよびコンテナのリソース・リクエストおよび制限に関するサイトを参照してください。

いいえ

1

--driverlimitcores

-dlc

エグゼキュータ・リクエスト・コア

これは、各エグゼキュータ・ポッドのCPUリクエストを指定するためのものです。値は、Kubernetesの規則に準拠しています。値の例は、0.1、500m、1.5および5で、CPU単位の定義は、Kubernetesドキュメントに記載されています。

いいえ

0.5

--executorrequestcores

-erc

エグゼキュータ制限コア

これは、Sparkアプリケーション用に起動された各エグゼキュータ・ポッドのハードCPU制限を指定するためのものです。

いいえ

0.5

--executorlimitcores

-elc

ドライバ・メモリー

これは、SparkContextが初期化されるドライバ・プロセスに使用するメモリーの量で、サイズ単位接尾辞("k"、"m"、"g"または"t")が付いたJVMメモリー文字列と同じ形式です(512m、2gなど)。

いいえ

1g

--drivermemory

-dm

エグゼキュータ・メモリー

これは、エグゼキュータ・プロセスごとに使用するメモリーの量で、サイズ単位接尾辞("k"、"m"、"g"または"t")が付いたJVMメモリー文字列と同じ形式です(512m、2gなど)。

いいえ

1g

--executorymemory

-em

ドライバ・メモリー・オーバーヘッド

これは、クラスタ・モードのドライバ・プロセスごとに割り当てられるヒープ以外のメモリーの量で、特に指定されていないかぎりMiB単位です。これは、VMオーバーヘッド、インターン化された文字列、その他のネイティブ・オーバーヘッドなどを考慮するメモリーです。これは、コンテナのサイズとともに大きくなる傾向があります(通常は6から10パーセント)。

いいえ

256m

--drivermemoryoverhead

-dmo

エグゼキュータ・メモリー・オーバーヘッド

これは、クラスタ・モードのエグゼキュータ・プロセスごとに割り当てられる追加メモリーの量で、特に指定されていないかぎりMiB単位です。これは、VMオーバーヘッド、インターン化された文字列、その他のネイティブ・オーバーヘッドなどを考慮するメモリーです。これは、エグゼキュータのサイズとともに大きくなる傾向があります(通常は6から10パーセント)。

いいえ

256m

--executorymemoryoverhead

-emo

2.9 認証構成に必要なパラメータ

表2-3は、認証構成に必要なパラメータを示しています。

表2-3 認証構成パラメータ

パラメータ 説明 必須 デフォルト値 引数 引数短縮形

認証プロバイダ

OIRIに認証するための認証プロバイダ。

いいえ

OIG

--authprovider

-ap

アクセス・トークン発行者

OIGアクセス・トークン発行者。

いいえ

www.example.com

--oigaccesstokenissuer

-oigati

Cookieドメイン

ドメイン属性は、cookieの受信が許可されるホストを指定します。指定しない場合、デフォルトでcookieを設定したのと同じホスト(サブドメインを除く)になります。

いいえ

なし

--cookiedomain

-cd

OIRIアクセス・トークン発行者

OIRIアクセス・トークン発行者。

いいえ

www.example.com

--accesstokenissuer

-ati

Cookieセキュア・フラグ

非SSL設定を使用している場合は、このパラメータをfalseに設定します。

いいえ

true

--cookiesecureflag

-csf

Cookie同一サイト

cookieを同一サイトのコンテキストに制限するかどうか。

いいえ

厳密

--cookiesamesite

-css

OIRIアクセス・トークン・オーディエンス

OIRIアクセス・トークン・オーディエンス

いいえ

www.example.com

--accesstokenaudience

-ata

OIRIアクセス・トークン有効期限(分)

分単位のOIRIアクセス・トークン有効期限。

いいえ

20

--accesstokenexpirationtime

-atet

OIRIアクセス・トークンで許可されるクロック・スキュー

OIRIアクセス・トークンで許可されるクロック・スキュー。

いいえ

30

--accesstokenallowedclockskew

-atacs

認証ロール

このパラメータの値として指定されたロールを持つユーザーは、OIRIにログインできます。

いいえ

OrclOIRIRoleEngineer

--authroles

-ar

アイドル・セッション・タイムアウト

OIRIアプリケーションがアイドル状態の場合のセッション・タイムアウト(分)。

いいえ

15

--idlesessiontimeout

-ist

セッション・タイムアウト

OIRIセッション・タイムアウト(分)

いいえ

240

--sessiontimeout

-st

2.10 データ・インポートのエンティティ・パラメータ

表2-4は、updateDataIngestionConfig.shコマンドを実行して更新できるユーザー・エンティティ・パラメータを示しています。

ノート:

updateDataIngestionConfig.shスクリプトでサポートされるすべてのパラメータを表示するには、ding-cliポッドから次のコマンドを実行します:

$ ./updateDataIngestionConfig.sh --help

または:

$ ./updateDataIngestionConfig.sh -h

表2-4 データ・インポートのユーザー・エンティティ・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にエンティティを有効にするか無効にするかを決定します。

TRUE

--entityusersenabled

-eue

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityuserssyncmode

-eusm

下限

パーティション・ストライドを決定するために使用されるpartitionColumnパラメータの最小値。

0

--entityuserslowerbound

-eulb

上限

パーティション・ストライドを決定するために使用されるpartitionColumnパラメータの最大値。

10000

--entityusersupperbound

-euub

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

3

--entityusersnumberofpartitions

-eunop

表2-5は、updateDataIngestionConfig.shコマンドを実行して更新できるデータ・インポートのアプリケーション・エンティティ・パラメータを示しています。

表2-5 データ・インポートのアプリケーション・エンティティ・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にアプリケーション・エンティティを有効にするか無効にするかを決定します。

TRUE

--entityapplicationsenabled

-eae

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityapplicationssyncmode

-easm

下限

パーティション・ストライドを決定するために使用されるpartitionColumnパラメータの最小値。

0

--entityapplicationslowerbound

-ealb

上限

パーティション・ストライドを決定するために使用されるpartitionColumnの最大値。

10000

--entityapplicationsupperbound

-eaub

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

3

--entityapplicationsnumberofpartitions

-eanop

表2-6は、updateDataIngestionConfig.shコマンドを実行して更新できるデータ・インポートの権限エンティティ・パラメータを示しています。

表2-6 データ・インポートの権限エンティティ・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にエンティティを有効にするか無効にするかを決定します。

TRUE

--entityentitlementsenabled

-eee

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityentitlementssyncmode

-eesm

下限

パーティション・ストライドを決定するために使用されるpartitionColumnの最小値。

0

--entityentitlementslowerbound

-eelb

上限

パーティション・ストライドを決定するために使用されるpartitionColumnの最大値。

10000

--entityentitlementsupperbound

-eeub

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

 

3

--entityentitlementsnumberofpartitions

-eenop

表2-7は、updateDataIngestionConfig.shコマンドを実行して更新できるデータ・インポートの割当て済権限パラメータを示しています。

表2-7 データ・インポートの割当て済権限パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にエンティティを有効にするか無効にするかを決定します。

TRUE

--entityassignedentitlementsenabled

-eaee

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityassignedentitlementssyncmode

-eaesm

下限

パーティション・ストライドを決定するために使用されるpartitionColumnの最小値。

0

--entityassignedentitlementslowerbound

-eaelb

上限

パーティション・ストライドを決定するために使用されるpartitionColumnの最大値。

10000

--entityassignedentitlementsupperbound

-eaeub

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

3

--entityassignedentitlementsnumberofpartitions

-eaenop

表2-8は、updateDataIngestionConfig.shコマンドを実行して更新できるデータ・インポートのロール・エンティティ・パラメータを示しています。

表2-8 データ・インポートのロール・エンティティ・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にエンティティを有効にするか無効にするかを決定します。

TRUE

--entityrolesenabled

-ere

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityrolessyncmode

-ersm

下限

パーティション・ストライドを決定するために使用されるpartitionColumnの最小値。

0

--entityroleslowerbound

-erlb

上限

パーティション・ストライドを決定するために使用されるpartitionColumnの最大値。

10000

--entityrolesupperbound

-erub

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

3

--entityrolesnumberofpartitions

-ernop

表2-9は、updateDataIngestionConfig.shコマンドを実行して更新できるデータ・インポートのロール階層エンティティ・パラメータを示しています。

表2-9 データ・インポートのロール階層エンティティ・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にエンティティを有効にするか無効にするかを決定します。

TRUE

--entityrolehierarchyenabled

-erhe

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityrolehierarchysyncmode

-erhsm

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

3

--entityrolehierarchynumberofpartitions

-erhnop

表2-10は、updateDataIngestionConfig.shコマンドを実行して更新できるデータ・インポートのロール・ユーザー・メンバーシップ・エンティティ・パラメータを示しています。

表2-10 データ・インポートのロール・ユーザー・メンバーシップ・エンティティ・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にエンティティを有効にするか無効にするかを決定します。

TRUE

--entityroleusermembershipsenabled

-erume

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityroleusermembershipssyncmode

-erumsm

下限

パーティション・ストライドを決定するために使用されるpartitionColumnの最小値。

0

--entityroleusermembershipsowerbound

-erumlb

上限

パーティション・ストライドを決定するために使用されるpartitionColumnの最大値。

10000

--entityroleusermembershipsupperbound

-erumub

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

3

--entityroleusermembershipsnumberofpartitions

-erumnop

表2-11は、updateDataIngestionConfig.shコマンドを実行して更新できるデータ・インポートのロール権限構成エンティティ・パラメータを示しています。

表2-11 データ・インポートのロール権限構成エンティティ・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にエンティティを有効にするか無効にするかを決定します。

TRUE

--entityroleentitlementcompositionsenabled

-erece

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityroleentitlementcompositionssyncmode

-erecsm

下限

パーティション・ストライドを決定するために使用されるpartitionColumnの最小値。

0

--entityroleentitlementcompositionslowerbound

-ereclb

上限

パーティション・ストライドを決定するために使用されるpartitionColumnの最大値。

10000

--entityroleentitlementcompositionsupperbound

-erecub

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

3

--entityroleentitlementcompositionsnumberofpartitions

-erecnop

表2-12は、updateDataIngestionConfig.shコマンドを実行して更新できるデータ・インポートのアカウント・エンティティ・パラメータを示しています。

表2-12 データ・インポートのアカウント・エンティティ・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

有効化(true/false)

データ・インポート中にエンティティを有効にするか無効にするかを決定します。

TRUE

--entityaccountsenabled

-eace

同期モード(完全/増分)

0日目のデータ・インポートでは、完全モードを使用します。n日目のデータ・インポートでは、増分モードを使用します。完全モードでは、すべてのデータがOIRIデータベースにロードされます。増分モードでは、ソースから更新されたデータのみがOIRIデータベースにロードされます。

full

--entityaccountssyncmode

-eacsm

下限

パーティション・ストライドを決定するために使用されるpartitionColumnの最小値。

0

--entityaccountsslowerbound

-eaclb

上限

パーティション・ストライドを決定するために使用されるpartitionColumnの最大値。

10000

--entityaccountsupperbound

-eacub

パーティションの数

パーティションの数。これにより、lowerBound (包含)およびupperBound (除外)とともに、partitionColumnを均等に分割するために使用される、生成されたWHERE句式のパーティション・ストライドが形成されます。

3

--entityaccountsnumberofpartitions

-eacnop

2.11 データ・インポートのフラット・ファイル・パラメータ

表2-13は、データ・インポートのフラット・ファイル・パラメータを示しています。

ノート:

変更可能なupdateDataIngestionConfig.shスクリプトのすべてのパラメータを表示するには、ding-cliポッドから次のコマンドを実行します:

$ ./updateDataIngestionConfig.sh --help

または:

$ ./updateDataIngestionConfig.sh -h

表2-13 データ・インポートのフラット・ファイル・パラメータ

パラメータ 説明 デフォルト値 引数 引数短縮形

フラット・ファイル有効

このパラメータを設定すると、フラット・ファイルに対してデータ・インポートを実行するかどうかが決まります。値はtrueまたはfalseです。

false

--useflatfileforetl

-uff

フラット・ファイル形式

フラット・ファイルの形式(CSV)。

csv

--flatfileformat

-fff

フラット・ファイル・データ・セパレータ

フラット・ファイルの行のデータ・セパレータ。カンマ(,)、コロン(:)または縦棒(|)を指定できます。

,

--flatfileseparator

-ffs

フラット・ファイル・タイムスタンプ書式

フラット・ファイルのタイムスタンプ書式。

yyyy-MM-dd

--flatfiletimestamp

-fftsf

2.12 Helmチャート構成値

表2-14は、Helmチャートに使用するValues.yamlファイルの設定に必要なパラメータを示しています。

表2-14 Helmチャート構成パラメータ

パラメータ名 説明 必須 デフォルト値 引数 引数短縮形

OIRIネームスペース

OIRIをインストールするKubernetesネームスペースの名前。このネームスペースには、OIRI APIポッドおよびOIRI UIポッドのインストールが含まれます。

いいえ

oiri

--oirinamespace

-ons

OIRIレプリカ

OIRIネームスペースで実行されるOIRI APIポッドの数。

いいえ

1

--oirireplicas

-or

OIRI APIイメージ

OIRI APIイメージの名前。たとえば:

oiri-12.2.1.4:<TAG>

はい

なし

--oiriapiimage

-oai

OIRI NFSサーバー

OIRIに使用されるNFSサーバー。これは、Kubernetesノード全体で使用可能である必要があります。

はい

なし

--oirinfsserver

-onfs

OIRI NFSストレージ・パス

OIRI APIおよびUIポッドからアクセス可能なNFSサーバー上のパス(/nfs/oiriなど)。

はい

なし

--oirinfsstoragepath

-onfsp

OIRI NFSストレージ容量

NFSサーバーの容量。容量によって予想される単位(10Giなど)の詳細は、Kubernetesのリソース・モデルに関するサイトを参照してください。

はい

なし

--oirinfsstoragecapacity

-onfsc

OIRI UIイメージ

OIRI UIイメージの名前。たとえば:

oiri-ui-12.2.1.4:<TAG>

はい

なし

--oiriuiimage

-oui

OIRI UIレプリカ

OIRIネームスペースで実行されるOIRI UIポッドの数。

いいえ

1

--oiriuireplicas

-our

DINGネームスペース

Spark Kubernetes履歴サーバーをインストールするKubernetesネームスペースの名前。このネームスペースには、ETL用のSpark履歴サーバーおよびSparkクラスタ(ドライバとエグゼキュータを含む)のインストールが含まれています。

いいえ

ding

--dingnamespace

-dns

Spark履歴サーバーのレプリカ

DINGネームスペースで実行されるSpark履歴サーバー・ポッドの数。

いいえ

1

--sparkhistoryserverreplicas

-shs

r

DING NFSサーバー

DINGに使用されるNFSサーバー。これは、Kubernetesノード全体で使用可能である必要があります。

はい

なし

--dingnfsserver

-dnfs

DING NFSストレージ・パス

Sparkクラスタ内のSpark履歴サーバー、ドライバおよびエグゼキュータによってアクセスできるNFSサーバー上のパス。たとえば:

/nf/ding/

はい

なし

--dingnfsstoragepath

-dnfsp

DING NFSストレージ容量

NFSサーバーの容量。容量によって予想される単位(10Giなど)の詳細は、Kubernetesのリソース・モデルに関するサイトを参照してください。

はい

なし

--dingnfsstoragecapacity

-dnfs

c

DINGイメージ

Spark履歴サーバー、エグゼキュータおよびドライバ・ポッドによって使用されるデータ取込みイメージの名前。たとえば:

oiri-ding-12.2.1.4:<TAG>

はい

なし

--dingimage

-di

イメージ・プル・シークレット

レジストリからイメージをプルするKubernetesシークレットの名前。

いいえ

regcred

--imagepullsecret

-ips

Ingress有効

Ingressが有効になっているかどうか。このパラメータのデフォルト値は'true'で、イングレス・リソースとイングレス・コントローラが作成されます。この値をfalseに設定すると、イングレス・コントローラが作成されなくなります。

いいえ

true

--ingressenabled

-ie

Ingressクラス名

イングレス・コントローラを設定します。このパラメータのデフォルト値は'nginx'です。既存のイングレス・コントローラを使用する場合は、このクラスをコントローラによって管理されるクラス名に設定します。

いいえ

nginx

--ingressclass

-ic

Ingressホスト名

Ingressホスト名

はい

なし

--ingresshostname

-ih

インストール・サービス・アカウント名

OIRIのインストール時にKubernetes構成を作成するために使用されるサービス・アカウント名。

いいえ

oiri-service-account

--installserviceaccount

-isa

Nginx-Ingressタイプ

OIRI APIおよびOIRI UIにアクセスするために作成するIngressのタイプ。これは、NodePortまたはLoadBalancerです。このリリースのOIRIでは、NodePort Ingressタイプのみがサポートされます。

いいえ

NodePort

--ingresstype

-it

Nginx-Ingress NodePort

Ingressのポート番号。指定されたポートが利用可能になっており、使用できることを確認してください。

いいえ

30305

--ingressnodeport

-inp

Nginx-Ingress SSL有効

SSLを構成するには、このパラメータを設定します。

はい

true

--sslenabled

-ssle

Nginx-Ingress TLSシークレット

これは、デフォルト・ネームスペースのTLSシークレットです。これは、SSLが有効になっている場合に必要です。これは、「OIRI Helmチャートのインストール」のステップ2bでkubectlを使用してTLSシークレットを作成中に指定した名前と一致する必要があります。

いいえ(SSLが有効になっている場合にのみ必要)

なし

--sslsecretname

-sslsn

Nginx-Ingressレプリカ数

Nginxコントローラのレプリカ数。

いいえ

1

--nginxreplicas

-nr

2.13 ウォレットの作成

OIRIおよびDINGウォレットを作成するには:
  1. oiri-cliポッドに接続します。
    $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
    
  2. 次のコマンドを実行して、キーストアを生成します:
    [oiri@1234 scripts]$ keytool -genkeypair \
      -alias <OIRI_JWT_KEY_ALIAS> \
      -keypass <OIRI_KEYSTORE_PASSWORD> \
      -keyalg RSA \
      -keystore /app/oiri/data/keystore/keystore.jks \
      -storetype pkcs12 \
      -storepass <OIRI_KEYSTORE_PASSWORD>

    ノート:

    キーパス・パスワードとストアパス・パスワードは同じです。

    次に、サンプル・コマンドを示します。

    $ keytool -genkeypair -alias oiri -keypass <PASSWORD> -keyalg RSA -keystore /app/oiri/data/keystore/keystore.jks -storepass <PASSWORD> -storetype pkcs12

    出力は次のようになります:

    What is your first and last name?
      [Unknown]:
    What is the name of your organizational unit?
      [Unknown]:
    What is the name of your organization?
      [Unknown]:
    What is the name of your City or Locality?
      [Unknown]:
    What is the name of your State or Province?
      [Unknown]:
    What is the two-letter country code for this unit?
      [Unknown]:
    Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
      [no]:  yes
  3. ポッドを終了します。
  4. キーストアにOIG証明書をインポートします。これを行うには:
    1. 次のコマンドを実行して、署名検証用のOIG証明書をエクスポートします:
      $ keytool -export -rfc -alias xell -file xell.pem -keystore default-keystore.jks

      default-keystore.jksは、DOMAIN_HOME/config/fmwconfigにあります。ここでエクスポートする証明書は、OIG REST APIを保護します。これはOIGサーバー証明書と同じではありません。

    2. OIGキーストアからエクスポートされたxell.pemファイルを/nfs/oiri/data/keystore/ディレクトリにコピーします。
    3. oiri-cliポッドから次のコマンドを実行して、証明書をOIRIキーストアにインポートします:
      $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
      [oiri@1234 scripts]$ keytool -import \
        -alias xell \
        -file /app/oiri/data/keystore/xell.pem \
        -keystore /app/oiri/data/keystore/keystore.jks
  5. SSLモードでOIRIとOIGを統合するには、OIG SSL証明書チェーンをOIRIにインポートします。これを行うには:
    1. 次のコマンドを実行して、OIGサーバーからOIG SSL証明書チェーンをダウンロードします:

      $ echo -n | openssl s_client -connect ${host}:${port} | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > oigsslcert.cer

      たとえば:

      $ echo -n | openssl s_client -connect oim.example.com:123 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > oigsslcert.cer
    2. OIGキーストアからダウンロードした証明書ファイルを/nfs/oiri/data/keystore/ディレクトリにコピーします。
    3. oiri-cliポッドから次のコマンドを実行して、証明書チェーンをOIRIキーストアにインポートします:

      $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
      [oiri@1234 scripts]$ keytool -import -alias oigsslcert -file oigsslcert.cer -keystore /app/oiri/data/keystore/keystore.jks

      プロンプトが表示されたら、ステップ1で指定したのと同じキーストア・パスワードを入力します。

  6. ウォレットを作成するには、oiri-cliポッドに接続し、次のコマンドを実行します:
    [oiri@1234 scripts]$ oiri-cli --config=/app/data/conf/config.yaml wallet create

    プロンプトが表示されたら、次の情報を入力します:

    • OIRIデータベースのユーザー名の接頭辞およびパスワード
    • OIGデータベースのユーザー名およびパスワード
    • OIGサービス・アカウントのユーザー名およびパスワード
    • OIRIキーストア・パスワード
    • OIRI JWTキーの別名およびパスワード

    プロンプトですべてのパラメータ値を指定することも、コマンド行ですべてのパラメータ値を指定することもできます。したがって、プロンプトに値を指定するかわりに、次のようにコマンド行でパラメータの値を指定できます:

    [oiri@1234 scripts]$ oiri-cli --config=/app/data/conf/config.yaml wallet create --oiridbuprefix OIRI_DB_PREFIX --oiridbp OIRI_DB_PASSWORD --oigdbu OIG_DB_USERNAME --oigdbp OIG_DB_PASSWORD -oigsau OIG_SERVICE_ACCOUNT_USERNAME --oigsap OIG_SERVICE_ACCOUNT_PASSWORD --oiriksp OIRI_KEYSTORE_PASSWORD --oirijka OIRI_JWT_KEY_ALIAS -oirijkp OIRI_JWT_KEY_PASSWORD

    出力は次のようになります:

    Setting up wallet in [/app/data/wallet]
    DING Wallet created.
    Setting up wallet in [/app/oiri/data/wallet]
    OIRI Wallet created.
  7. 次のコマンドを実行して、OIRIおよびDingウォレットが作成されたことを確認します:

    コマンド:

    [oiri@1234 scripts]$ ls /app/data/wallet

    出力:

    cwallet.sso cwallet.sso.lck

    コマンド:

    $ ls /app/oiri/data/wallet

    出力:

    cwallet.sso cwallet.sso.lck

2.14 OIRIデータベース・スキーマの作成およびシード

OIRIデータベース・スキーマを作成してシードするには:
  1. oiri-cliコンテナに接続します。
    $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
  2. 次のコマンドを実行して、データベース・ユーザー・スキーマを作成します:
    [oiri@1234 scripts]$ oiri-cli --config=/app/data/conf/config.yaml schema create /app/data/conf/dbconfig.yaml

    プロンプトが表示されたら、SYSパスワードを指定すると、出力は次のようになります:

    Creating the schema ci_oiri
    CREATING OIRI SCHEMA ............
    ===================================================
    DB USER ci_oiri has been successfully created
  3. 次のコマンドを実行して、スキーマをシードします:
    $ oiri-cli --config=/app/data/conf/config.yaml schema migrate /app/data/conf/dbconfig.yaml

    出力は次のようになります:

    Migrating the OIRI schema
    Migrating OIRI SCHEMA ............
    ===================================================
    ............
    OIRI Schema has been successfully migrated

    ノート:

    スキーマ作成コマンドは、dbconfig.yamlファイルのtablespaceConfigurationパラメータを使用して永続表領域および一時表領域を作成します。デフォルトでは、永続データベース用に1つのDATAFILEと、一時データベース用に1つのTEMPFILEのみが作成されます。ファイル・サイズには制限があるため、データベース表領域で定期的なチェックを実行し、必要に応じてデータファイルを追加します。

2.15 ウォレットの検証および更新

ウォレットを検証し、ウォレット内の資格証明を更新するには:
  1. 次のコマンドを実行して、ウォレットを確認します:

    ノート:

    このコマンドは、サービス・アカウントを使用して、ウォレットの場所、OIRIデータベース接続、OIGデータベース接続、キーストア・エントリおよびOIGサーバー接続を検証します。

    $ ./verifyWallet.sh

    出力は次のようになります:

    Verifying Wallets. Wallet locations and entries will be validated
    DING Wallet is Valid.
    OIRI Wallet is Valid.
    OIRI DB Connection is Valid.
    OIG DB Connection is Valid.
    KeyStore location and entries are Valid.
    OIG Server Connection is Valid.
    SUCCESS: Wallet locations and entries are valid.
  2. オプションで、次のコマンドを実行して、ウォレット内の資格証明を更新します:
    $ oiri-cli --config=/app/data/conf/config.yaml wallet update

    出力はサンプル値のようになります:

    Please enter the DB name, credentials of which need to be updated. Supported values are OIGSA/OIGDB/OIRIDB/OIRIKS/OIRIJWT: OIRIDB
    Please enter OIRI DB UserName: oiri_core
    Please enter OIRI DB password: <OIRI_DB_PASSWORD>
    Updating OIRI DB Credentials in OIRI wallet
    Updating DB wallet in [/app/oiri/data/dbwallet]
    OIRI Wallet updated.
    Updating OIRI DB Credentials in DING wallet
    Updating DB wallet in [/app/data/dbwallet]
    DING Wallet updated.

    出力でプロンプトが表示される、サポートされているモードは次のとおりです:

    • OIGSA: このモードを使用して、OIGサービス・アカウントのユーザー名およびパスワードを更新します。

    • OIGDB: このモードを使用して、OIGデータベースのユーザー名およびパスワードを更新します。

    • OIRIDB: このモードを使用して、OIRIデータベース・スキーマの接頭辞およびパスワードを更新します。

    • OIRIKS: このモードを使用して、OIRIキーストア・パスワードを更新します。

    • OIRIJWT: このモードを使用して、OIRI JWTキーの別名およびパスワードを更新します。

2.16 OIRI Helmチャートのインストール

OIRI Helmチャートを作成するには:
  1. ステップ1で作成したoiriおよびdingネームスペースのイメージ・プル・シークレットを作成します。

    コマンド:

    $ kubectl create secret docker-registry regcred --docker-server=<registry_server_url> --docker-username=<registry_user> --docker-password=<registry_password> -n <oirins>
    
    $ kubectl create secret docker-registry regcred --docker-server=<registry_server_url> --docker-username=<registry_user> --docker-password=<registry_password> -n <dingns>
  2. oiri-cliコンテナの外部にあるDockerコンテナ・ホスト・マシンからSSLを有効にする場合は、必要に応じて次のステップ(2aおよび2b)を実行します:

    ノート:

    setupValuesYaml.shスクリプトの実行中に--sslenabledの値としてfalseを指定した場合、このステップをスキップします。

    1. 既存の証明書がない場合は、証明書を作成します。すでにキーおよび証明書がある場合は、これをスキップできます。
      $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=<HOSTNAME>"
      

      たとえば:

      $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=oiri.example.com"

      出力は次のようになります:

      Generating a 2048 bit RSA private key
      ..+++
      ............................+++
      writing new private key to 'tls.key'
      -----
    2. 次のコマンドを実行して、TLSシークレットを作成します:
      $ kubectl create secret tls oiri-tls-cert --key="tls.key" --cert="tls.crt"

      出力は次のようになります:

      secret/oiri-tls-cert created
  3. 次のコマンドを実行して、チャートをインストールします:
    $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
    [oiri@1234 scripts] helm install oiri /helm/oiri -f /app/k8s/values.yaml -n <oirinamespace>

    出力は次のようになります:

    NAME: oiri
    LAST DEPLOYED: Mon Jan 11 15:14:22 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Please be patient while the chart installs. Pod may not be in running status.
     
    To check the status of the pod, run following command.
    Pods READY state must be 1/1 and status RUNNING
     
        kubectl get pods --namespace oiri
     
        kubectl get pods --namespace ding
     
    Access OIRI Service by using following URL in your browser.
     
        https://IP_ADDRESS:PORT/
     
    Access OIRI UI by using following URL in your browser.
     
        https://IP_ADDRESS:PORT/oiri/ui/v1/console
     
    Admins can access DING History Server by port forwarding the ding-history pod through kubectl.
     
      kubectl port-forward <pod_name> <desired_port>:18080 -n ding
     
    Inside the DING-CLI, use following commands to start data ingestion
     
        ding-cli --config=/app/data/conf/config.yaml data-ingestion start /app/data/conf/data-ingestion-config.yaml

    ノート:

    インストールおよび構成のログ・ファイルは、次の場所にあります:

    • oiri-cliの場合: 次のログ・ファイルは、/nfs/oiri/data/logs/ディレクトリにあります:

      • oiri-service-audit.log: このファイルには、OIRI APIサーバーの監査情報が含まれています。
      • oiri-service.log: このファイルには、OIRI APIサーバー・ログが含まれています。ログはWARNモードで有効になります。
    • oiri-dingの場合: 次のログ・ファイルは、/nfs/ding/data/logs/ディレクトリにあります:

      • oiri-ding-access-xxx.log: このファイルには、データ取込みコンテナのアクセス情報が含まれています。
      • oiri-ding-cli-xxx.log: このファイルには、データ取込みCLIのログが含まれています。

values.yamlファイルの値を更新した後にHelmチャートをアップグレードする場合は、KubernetesへのOracle Identity Role IntelligenceのデプロイOIRIイメージのアップグレードに関する項の説明に従って、updateValuesYaml.shスクリプトをoiri-cliコンテナから実行します。

データ・ロード・プロセスを実行する前にデータ・ロード構成を変更する場合は、「OIRIデータベースへのエンティティ・データのインポート」を参照してください。

2.17 OIRI Helmチャートのアンインストール(オプション)

OIRI Helmチャートのインストール中に問題が発生した場合は、問題を修正し、OIRI Helmチャートをアンインストールしてから再度インストールします。OIRI Helmチャートをアンインストールしないと、インストール・プロセスはエラーで失敗します。

OIRI Helmチャートをアンインストールするには、次のコマンドを実行します:

$ helm uninstall oiri -n <oirinamespace>

出力は次のようになります:

release "oiri" uninstalled

2.18 データ・ロード・プロセスの開始

データ・ロード・プロセスを開始するには:
  1. 次の内容を含むding-cli.yamlファイルを作成します
    apiVersion: v1
    kind: Pod
    metadata:
      name: oiri-ding-cli
      namespace: <DINGNS>
      labels:
        app: dingcli
    spec:  
      serviceAccount: ding-sa
      restartPolicy: OnFailure
      volumes:
        - name: oiripv
          nfs:
            server: <PVSERVER>
            path: <OIRI_SHARE>
        - name: dingpv
          nfs:
            server: <PVSERVER>
            path: <OIRI_DING_SHARE>
        - name: workpv
          nfs:
            server: <PVSERVER>
            path: <OIRI_WORK_SHARE>
      containers:
      - name: oiricli
        image: <OIRI_DING_IMAGE>:<OIRIDING_VER>
        volumeMounts:
          - name: oiripv
            mountPath: /app/oiri
          - name: dingpv
            mountPath: /app
          - name: workpv
            mountPath: /app/k8s
        command: ["/bin/bash","-ec", "tail -f /dev/null"]
      imagePullSecrets:
        - name: regcred

    説明:

    • DINGNSは、DINGオブジェクトを保持するために使用するネームスペースの名前です。
    • PVSERVERは、永続ボリュームをホストするNFSサーバーのIPアドレスです。
    • OIRI_SHAREは、OIRI永続ボリュームのNFSマウント場所です。
    • OIRI_DING_SHAREは、OIRI DING永続ボリュームのNFSマウント場所です。
    • OIRI_WORK_SHAREは、OIRI作業永続ボリュームのnfsマウントです。
    • OIRI_CLI_IMAGEは、OIRI CLIイメージ・ファイルの名前です。コンテナ・レジストリを使用している場合、名前の前にコンテナ・レジストリ名が付けられます。例: iad.ocir.io/mytenancy/idm/oiri-cli
    • OIRICLI_VERは、使用するイメージのバージョンです。たとえば、12.2.1.4.02106です。
    • ImagePullSecretsは、コンテナ・レジストリを使用していて、regcredが格納されているレジストリ資格証明で作成したKubernetesシークレットの名前である場合にのみ必要です。

    例:

    apiVersion: v1
    kind: Pod
    metadata:
      name: oiri-ding-cli
      namespace: ding
      labels:
        app: dingcli
    spec:
      serviceAccount: ding-sa
      restartPolicy: OnFailure
      volumes:
        - name: oiripv
          nfs:
            server: 100.69.233.106
            path: /nfs/oiri
        - name: dingpv
          nfs:
            server: 100.69.233.106
            path: /nfs/ding
        - name: workpv
          nfs:
            server: 100.69.233.106
            path: /nfs/k8s
      containers:
      - name: oiricli
        image: iad.ocir.io/mytenancy/idm/oiri-ding:12.2.1.4.02106
        volumeMounts:
          - name: oiripv
            mountPath: /app/oiri
          - name: dingpv
            mountPath: /app
          - name: workpv
            mountPath: /app/k8s
        command: ["/bin/bash", "-ec", "tail -f /dev/null"]
      imagePullSecrets:
        - name: regcred
  2. 次のコマンドを使用して、DING管理CLIを起動します
    $ kubectl apply -f ding-cli.yaml
  3. DINGポッドに接続します。
    $ kubectl exec -n ding -ti ding-cli -- /bin/bash
  4. 次のコマンドを使用して、DINGポッドに証明書をコピーします:
    $ kubectl cp <WORKDIR>/ca.crt <DINGNS>/oiri-ding-cli:/app/ca.crt

    たとえば:

    $ kubectl cp $WORKDIR/ca.crt ding/oiri-ding-cli:/app/ca.crt
  5. 次のコマンドを実行して、データ・ロード構成を確認します:
    $ ding-cli --config=/app/data/conf/config.yaml data-ingestion verify /app/data/conf/data-ingestion-config.yaml

    ノート:

    data-ingestion verifyコマンドは、data-ingestion-config.yamlファイルで指定されたサービスURLと連携しますが、SIDが指定されている場合、次のエラーがスローされます:

    oracle.net.ns.NetException: Listener refused the connection with the following error:
    ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
    
    at oracle.net.ns.NSProtocolNIO.negotiateConnection(NSProtocolNIO.java:284)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:340)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1596)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:588)

    これは、OIRIではSIDではなく、データベースに接続するためのサービス名がサポートされているためです。環境内でSIDを使用する場合は、data-ingestion-config.yamlファイルを編集し、次の形式でURLを変更します。

    url: jdbc:oracle:thin:@_DBHOSTNAME:DBHOSTPORT:DBSID_
  6. 日付0のデータ・ロードの一部としてカスタム属性をロードする場合は、カスタム属性のスキーマ定義を構成します。

    カスタム属性のデータ・インポートの構成の詳細は、「カスタム属性のインポート」を参照してください。

  7. 既存のデータ・ロード構成を更新する場合は、次のコマンドを使用できます:
    $ kubectl exec -n ding -ti ding-cli -- /bin/bash
     
    $ ./updateDataIngestionConfig.sh --parameter_name_1 parameter_value_1 --parameter_name_2 parameter_value_2 ...... --parameter_name_n parameter_value_n

    たとえば、useflatfileforetltrueに、useoigdbforetlfalseに更新する場合は、次のコマンドを実行します:

    $ ./updateDataIngestionConfig.sh --useoigdbforetl false --useflatfileforetl true

    ノート:

    updateDataIngestionConfig.shスクリプトのすべてのパラメータを表示するには、次のコマンドを実行します:

    ./updateDataIngestionConfig.sh --help

    または:

    ./updateDataIngestionConfig.sh -h

    updateDataIngestionConfig.shスクリプトを実行して更新できるエンティティ・パラメータの詳細は、「データ・インポートのエンティティ・パラメータ」を参照してください。

    updateDataIngestionConfig.shスクリプトを実行して更新できるフラット・ファイル・パラメータの詳細は、「データ・インポートのフラット・ファイル・パラメータ」を参照してください。

2.19 コンテナ・イメージのアップグレード

OIRIイメージを新しいバージョンにアップグレードするには、この項で説明するステップを実行します:
  1. oiri-cli.yamlおよびding-cli.yamlを更新されたイメージで更新します。
    $ kubectl apply -f oiri-cli.yaml
    $ kubectl apply -f ding-cli.yaml
  2. oiri-cliポッドに接続します。
    $ kubectl exec -n oiri -ti oiri-cli -- /bin/bash
  3. イメージを更新します。
    $ ./updateValuesYaml.sh \
    --oiriapiimage {OIRI_NEW_IMAGE} \
    --oiriuiimage {OIRI_UI_NEW_IMAGE} \
    --dingimage {DING_NEW_IMAGE}
    $ ./updateConfig.sh \
    --dingimage {DING_NEW_IMAGE}
  4. Helmチャートをアップグレードします。
    $ helm upgrade oiri /helm/oiri -f /app/k8s/values.yaml -n oiri
  5. OIRIスキーマが変更されている場合は、次のコマンドを実行してスキーマをシードします:
    $ oiri-cli --config=/app/data/conf/config.yaml schema migrate /app/data/conf/dbconfig.yaml
  6. 2021年4月リリースからアップグレードする場合は、次のワンタイム・ステップを実行します。
    $ kubectl create secret docker-registry regcred --docker-server=<registry_server_url> --docker-username=<registry_user> --docker-password=<registry_password> -n <oirins>
    $ kubectl create secret docker-registry regcred --docker-server=<registry_server_url> --docker-username=<registry_user> --docker-password=<registry_password> -n <dingns>