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

Oracle Identity Role Intelligence (OIRI)は、Oracle Identity Governanceで定義されたユーザーおよびグループを使用して認証します。したがって、最初にOracle Identity Governanceをインストールして構成する必要があります。

「WDTを使用したOracle Identity Governanceの構成」を参照してください。従来のOracle Identity and Access Management製品とは異なり、Oracle Identity Role Intelligenceは一連のマイクロサービスとしてデプロイされます。

このリリースでは、Oracleはスタンドアロン・コンテナ・イメージを使用してOIRIをインストールおよび構成します。コンテナ・イメージは、Kubernetesクラスタ内で手動で起動されます。

この章の内容は次のとおりです。

Oracle Identity Role Intelligenceについて

OIRIは、システム管理者がロール・マイニング操作を実行するために使用します。

次のコンポーネントから構成されています:
  • Oracle Identity Role Intelligence管理コンテナ(OIRI-CLI)
  • Oracle Identity Role Intelligence (OIRI)マイクロサービス
  • Oracle Identity Role Intelligenceユーザー・インタフェース(OIRI-UI)のマイクロサービス
  • Oracle Identity Role Intelligence Data Ingester (OIRI-DING)のマイクロサービス

OIRIでは、OAM/OIGデータ・ストアとは異なる方法で大量のデータを処理できるため、専用データベースが使用されます。これは、オンライン・トランザクション処理(OLTP)ではなく、データ・ウェアハウス・モデルを使用します。

この章で使用される変数

この章の以降の項では、多数のファイルを作成する手順について説明します。これらのサンプル・ファイルには、デプロイメントに適用可能な値に置換する必要がある変数が含まれています。

変数の形式は<VARIABLE_NAME>です。次の表に、これらの各変数に設定する必要がある値を示します。

表20-1 変更する必要がある変数

変数 サンプル値 説明

<REGISTRY_ADDRESS>

iad.ocir.io/<mytenancy>

レジストリの場所。

<REGISTRY_SECRET_NAME>

regcred

コンテナ・レジストリ資格証明を含むKubernetesシークレットの名前。コンテナ・レジストリから直接イメージをプルする場合にのみ必要です。「コンテナ・レジストリ・シークレットの作成」を参照してください。

<REG_USER>

mytenancy/oracleidentitycloudservice/myemail@email.com

レジストリへのログインに使用するユーザーの名前。

<REG_PWD>

<password>

レジストリ・ユーザー・パスワード。

<OIRI_CLI_REPOSITORY>

oracle/oiri-cli

local/oracle/oiri-cli

container-registry.oracle.com/middleware/oiri-cli_cpu

<REGISTRY_ADDRESS>/oracle/oiri-cli

OIRI CLIソフトウェア・リポジトリの名前。

コンテナ・イメージをダウンロードしてステージングした場合、この値はoracle/local/oiri-cliになります。OLCNEを使用する場合、値はlocal/oiri-cliになります。

Oracleコンテナ・レジストリを使用する場合、値はcontainer-registry.oracle.com/middleware/local/oiri-cli_cpuになります。

コンテナ・レジストリを使用する場合、値は製品名を含むレジストリの名前になります: <REGISTRY_ADDRESS>/oiri-cli

<OIRICLI_VER>

12.2.1.4.220429

使用するイメージのバージョン。

<OIRI_REPOSITORY>

oracle/oiri

local/oracle/oiri

container-registry.oracle.com/middleware/oiri_cpu

<REGISTRY_ADDRESS>/oracle/oiri

OIRIソフトウェア・リポジトリの名前。

コンテナ・イメージをダウンロードしてステージングした場合、この値はlocal/oracle/oiriになります。OLCNEを使用する場合、値はlocal/oracle/oiriになります。

Oracleコンテナ・レジストリを使用する場合、値はcontainer-registry.oracle.com/middleware/local/oiri_cpuになります。

コンテナ・レジストリを使用する場合、値は製品名を含むレジストリの名前になります: <REGISTRY_ADDRESS>/oracle/oiri

<OIRI_VER>

12.2.1.4.02106

使用するOIRIイメージのバージョン。

<OIRI_DING_REPOSITORY>

oracle/oiri-ding

local/oracle/oiri-ding

container-registry.oracle.com/middleware/oiri-ding_cpu

<REGISTRY_ADDRESS>/oracle/oiri-ding

OIRI DINGソフトウェア・リポジトリの名前。

コンテナ・イメージをダウンロードしてステージングした場合、この値はoracle/local/oiri-dingになります。OLCNEを使用する場合、値はlocal/oiri-dingになります。

Oracleコンテナ・レジストリを使用する場合、値はcontainer-registry.oracle.com/middleware/local/oiri-ding_cpuになります。

コンテナ・レジストリを使用する場合、値は製品名を含むレジストリの名前になります: <REGISTRY_ADDRESS>/oracle/oiri-ding

<OIRIDING_VER>

12.2.1.4.02106

使用するイメージのバージョン。

<OIRI_UI_REPOSITORY>

oracle/oiri-ui

local/oracle/oiri-ui

container-registry.oracle.com/middleware/oiri-ui_cpu

<REGISTRY_ADDRESS>/oracle/oiri-ui

OIRI UIソフトウェア・リポジトリの名前。

コンテナ・イメージをダウンロードしてステージングした場合、この値はoracle/local/oiri-uiになります。OLCNEを使用する場合、値はlocal/oiri-uiになります。

Oracleコンテナ・レジストリを使用する場合、値はcontainer-registry.oracle.com/middleware/local/oiri-ui_cpuになります。

コンテナ・レジストリを使用する場合、値は製品名を含むレジストリの名前になります: <REGISTRY_ADDRESS>oiri-ui

<OIRIUI_VER>

12.2.1.4.02106

使用するイメージのバージョン。

<PVSERVER>

1.1.1.1

永続ボリュームをホストするNFSサーバーの名前またはIPアドレス。

<OIRINS>

oirins

OIRIオブジェクトを保持するために使用しているOIRIネームスペースの名前。

<DINGNS>

dingns

DINGオブジェクトを保持するために使用しているOIRI DINGネームスペースの名前。

<WORKDIR>

/workdir/OIRI/

OIRI用の作業ディレクトリ。

<OIRI_SHARE>

/exports/IAMPVS/oiripv

OIRI永続ボリュームのNFSマウント場所。

<OIRI_SHARE_SIZE>

10Gi

NFS共有のサイズ。

<OIRI_DING_SHARE>

/exports/IAMPVS/dingpv

OIRI Ding永続ボリュームのNFSマウント場所。

<OIRI_DING_SHARE_SIZE>

10Gi

NFS共有のサイズ。

<OIRI_WORK_SHARE>

/exports/IAMPVS/workpv

OIRI作業永続ボリュームのNFSマウント。

<OIRI_NFS_SHARE>

/exports/iampvs/oiripv

OIRI永続ボリュームのNFS共有マウント・ポイント。

<OIG_DB_SCAN>

db-scan.example.com

OIGデータベースのデータベース・ホスト。RACデータベースを使用する場合は、SCANアドレスを使用します。

<OIG_DB_LISTENER>

1521

Oracle Identity Governanceデータベースのリスナー・ポート。

<OIG_DB_SERVICE>

oig_s.example.com

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

<OIRI_DB_SCAN>

db-scan.example.com

OIRIデータベースのデータベース・ホスト。RACデータベースを使用する場合は、SCANアドレスを使用します。

<OIRI_DB_SYS_PWD>

<password>

OIRIデータベースのsysパスワード。

<OIRI_DB_LISTENER>

1521

OIRIデータベースのリスナー・ポート。

<OIRI_DB_SERVICE>

oiri_s.example.com

OIRIデータベースのデータベース・サービスの名前。

<OIRI_RCU_PREFIX>

oiri

OIRIデータベース・スキーマ・オブジェクトに割り当てるデータベース・スキーマ接頭辞。

<OIRI_SCHEMA_PWD>

myoigschemapwd

OIRIスキーマに割り当てるパスワード。

<OIG_RCU_PREFIX>

IGD_OIM

OIGスキーマを作成したときに使用した接頭辞。

<OIG_SCHEMA_PWD>

myoigschemapwd

<OIG_RCU_PREFIX>_OIMスキーマに関連付けられたパスワード。

<USE_INGRESS>

false

インストールでOIRIネームスペースにイングレス・コントローラを作成する場合は、この値をtrueに設定します。独自のイングレス・コントローラまたはNodePortを使用している場合は、この値をfalseに設定します。

<OIRI_INGRESS_HOST>

oiri.example.com

igdadmin.example.com

k8workers.example.com

この値は、OIRIロード・バランサ仮想ホスト名に設定します。OIRIスタンドアロンを使用する場合、この値はOIRI専用に定義したOIRI仮想ホストの名前になります。このホストを統合Oracle Identity and Access Managementデプロイメントの一部としてデプロイする場合(コンテナなど)、Oracle Identity Governanceの管理操作に既存の仮想ホストを使用できます。

<OIRI_REPLICAS>

2

起動するOIRIサーバーの数。HAには2台以上のサーバーが必要です。

<OIRI_UI_REPLICAS>

2

起動するOIRI UIサーバーの数。HAには2台以上のサーバーが必要です。

<OIRI_DING_REPLICAS>

2

起動するDINGサーバーの数。HAには2台以上のサーバーが必要です。

<OIRI_KEYSTORE_PASSWORD>

mykeystorepwd

OIG REST証明書をインポートしたときに使用したパスワード。「OIRIへのOIG REST証明書のインポート」を参照してください。

<OIRI_SERVICE_USER>

oirisvc

作成したサービスのユーザー名。「OIRIサービス・ユーザーの作成」を参照してください。

<OIRI_SERVICE_PWD>

myservicepwd

<OIRI_SERVICE_USER>アカウントに割り当てられたパスワード。

<OIRI_K8>

30305

OIRI NodePortサービスのKubernetesサービス・ポート。

<OIRI_UI_K8>

30306

OIRI-UI NodePortサービスのKubernetesサービス・ポート。

<CERT_FILE>

prov.example.com.pem

証明書ファイルの名前。

<K8_URL>

https://10.0.0.10:6443

Kubernetes APIのURL。管理ホストで次のコマンドを使用してURLを取得できます:

grep server: $KUBECONFIG | sed 's/server://;s/ //g'

<CERTIFICATE_FILE >

/workdir/OIRI/ca.crt

生成したca.crt証明書ファイルの場所。「ca.crt証明書の生成」を参照してください。

<OIGNS>

oigns

OIGで使用されるネームスペース。

<OIG_DOMAIN_NAME>

governancedomain

OIGドメインの名前。

<OIG_LBR_HOST>

prov.example.com

OIMのロード・バランサ・エントリ・ポイント。

<OIG_LBR_PORT>

443

OIMのロード・バランサ・ポート。

<OIG_URL>

http://igdinternal.example.com:7777

http://governancedomain-cluster-oim-clusteroigns.svc.cluster.local:14000

これは、OIGインストールのURLです。OIRIは、組織を終了する必要はありません。したがって、内部コールバックURLを使用できます。

OIGインストールがOIGデプロイメントと同じKubernetesクラスタ内にある場合は、次のように内部サービス名を使用できます:

http://$OIG_DOMAIN_NAME-cluster-oim-cluster.$OIGNS.svc.cluster.local:14000

<ELK_HOST>

https://elasticsearch-es-http.elkns.svc:9200

集中管理型のElasticsearchデプロイメントのホストおよびポート。このホストは、Kubernetesクラスタの中と外のどちらでもかまいません。このホストは、Elasticsearchが使用されている場合にのみ使用されます。

<ELK_VER>

8.11.0

使用するElasticsearchのバージョン。

OIRIインストールの特徴

この項では、作成しようとしているOIRIインストールの主な特徴を示します。これらの特性を確認して、OIRIの構成に使用される手順の目的とコンテキストを理解します。

表20-2 OIRIインストールの主な特徴

OIRIの特徴 詳細情報

マイクロサービスはそれぞれ、Kubernetesクラスタ内のポッドにデプロイされます。

「Kubernetesデプロイメントについて」を参照してください。

OIRIコンポーネントを専用のKubernetesネームスペースに配置します。

「Kubernetesデプロイメントについて」を参照してください。

DINGコンポーネントは専用ネームスペースに配置されますが、必要に応じてOIRIネームスペースと組み合せることができます。

「Kubernetesデプロイメントについて」を参照してください。

Kubernetesサービスを使用してマイクロサービスと対話します。

「Kubernetesサービスの作成」を参照してください。

Kubernetes永続ボリュームを使用して構成情報を保持します。

unresolvable-reference.html#GUID-CF07EE44-34D9-4F36-97BE-6B3FBB4FCEA8を参照してください。

各Kubernetesポッドは、事前作成済のOracleコンテナ・イメージから作成されます。

「エンタープライズ・デプロイメント用のソフトウェア・ディストリビューションの特定と取得」を参照してください。

Oracle Identity Governanceをインストールして構成する必要があります。

「WDTを使用したOracle Identity Governanceの構成」を参照してください。

インストールは、スタンドアロンにも統合にもできます。

unresolvable-reference.html#GUID-62F73C7C-55E9-4E1E-9D2A-AE35749DC11Dを参照してください。

Kubernetesサービス

NodePortサービスを使用している場合、OIRIインストールの一部としてKubernetesサービス'OIRI-nodeport'および'OIRI-ui-nodeport'が作成されます。イングレスを使用している場合は、イングレス・サービスが作成されます。

表20-3 Kubernetes NodePortサービス

サービス名 タイプ サービス・ポート マップ済ポート

oiri-nodeport

NodePort

30305

8005

oiri-ui-nodeport

NodePort

30306

8080

イングレスベースのデプロイメントを使用する場合、このデプロイメントの一部として次のイングレス・サービスが作成されます:

表20-4 イングレス・サービス

サービス名 ホスト名

oiriI-ingress

igdadmin.edg.comおよびoiri.example.com

開始する前に

インストールを開始する前に、このトピックにリストされているすべての必須タスクが完了していることを確認する必要があります。

完了し、次の作業が実行済であることを確認します:

製品固有の作業ディレクトリの設定

インストールを開始する前に、Oracle Identity Governanceコンテナ・イメージおよびコード・リポジトリをダウンロードしてステージングしておく必要があります。「コンテナ・レジストリからのイメージのダウンロード」および「コード・リポジトリのステージング」を参照してください。また、「WebLogic Kubernetes Operatorのインストール」の説明に従って、Oracle WebLogic Operatorをデプロイしている必要があります

この項では、ダウンロードしたサンプル・デプロイメント・スクリプトをOIRIの構成ホストの一時作業ディレクトリにコピーする方法について説明します。

  1. インストール・ユーザーとして一時作業ディレクトリを作成します。インストール・ユーザーには、Kubernetesクラスタへのkubectlアクセス権が必要です。
    mkdir -p /<WORKDIR>
    たとえば:
    mkdir -p /workdir/OIRI
  2. ディレクトリをこの場所に変更します:
    cd /workdir/OIRI

Oracle Identity Governanceでのユーザー名とグループの作成

Oracle Identity Role Intelligenceは、Oracle Identity Governanceのユーザーおよびグループを使用して認証します。OIRIの構成を開始する前に、https://prov.example.com/identity URLを使用してOIGセルフ・サービス・コンソールにログインし、必要なユーザー名とグループを作成します。

次のユーザーおよびグループを作成します:
  • OIRIサービス・アカウント
  • OIRIユーザー・アカウント
  • OIRIグループ

OIRIサービス・ユーザーの作成

OIRIサービス・ユーザーを作成するには:
  1. https://prov.example.com/identity URLおよびシステム管理ユーザーを使用してOIGセルフ・サービス・コンソールにログインします。例: xelsysadm
  2. 「管理」をクリックします。
  3. 「ユーザー」をクリックします。
  4. 「作成」をクリックします。
  5. 「ユーザーの作成」画面で次の情報を指定します。残りのフィールドはオプションです。
    • : 例: oirisvc
    • : 例: oirisvc
    • 組織: Xellerate Users
    • ユーザー・タイプ: Full Time Employee
    • ユーザー・ログイン: 例: oirisvc
    • パスワード: アカウントのパスワードを選択します。
    • パスワードの確認: パスワードを繰り返します。
  6. 「送信」をクリックします。
  7. ホーム画面で、「管理ロール」を選択します。
    1. 管理ロールOrclOIMUserViewerを検索します。
    2. 「ユーザー」をクリックし、「メンバー」タブをクリックします。
    3. 「ユーザーの割当て」をクリックします。
    4. 新しく作成したユーザーを検索します。例: oirisvc
    5. ユーザーを選択し、「選択した項目の追加」を選択します。
    6. 「選択」をクリックします。
  8. ロールOrclOIMRoleAdministratorおよびOrclOIMAccessPolicyAdministratorに対してステップ5を繰り返します。

OIRIユーザーの作成

OIRIユーザーを作成するには:
  1. https://prov.example.com/identity URLおよびシステム管理ユーザーを使用してOIGセルフ・サービス・コンソールにログインします。例: xelsysadm
  2. 「管理」をクリックします。
  3. 「ユーザー」をクリックします。
  4. 「作成」をクリックします。
  5. 「ユーザーの作成」画面で次の情報を指定します。残りのフィールドはオプションです。
    • : 例: oiri
    • : 例: oiri
    • 組織: Xellerate Users
    • ユーザー・タイプ: Full Time Employee
    • ユーザー・ログイン: 例: oiri
    • パスワード: アカウントのパスワードを選択します。
    • パスワードの確認: パスワードを繰り返します。
  6. 「送信」をクリックします。

OIRIエンジニアリング・ロールの作成

OIRIエンジニアリング・ロールを作成するには:
  1. https://prov.example.com/identity URLおよびシステム管理ユーザーを使用してOIGセルフ・サービス・コンソールにログインします。例: xelsysadm
  2. 「ロールとアクセス・ポリシー - ロール」をクリックします。
  3. 「作成」をクリックし、次の情報を指定します:
    • 名前: OrclOIRIRoleEngineer
    • 表示名: OrclOIRIRoleEngineer
    • ロールの説明: OIRI Engineer Role
  4. 「次」をクリックします。
  5. 「階層」画面で、「次」をクリックします。
  6. 「アクセス・ポリシー」画面で、「次」をクリックします。
  7. 「ロール・メンバーシップの追加」画面で、「メンバーの追加」をクリックします。
    1. 「ロール・メンバーシップの追加」画面で、「メンバーの追加」をクリックします。
    2. oiriユーザーを選択し、「選択した項目の追加」をクリックします。
    3. 「選択」をクリックします。
    4. 「次」をクリックします。
  8. 「組織」画面で、「組織の追加」をクリックします。
    1. 組織の上位者を検索して選択します。
    2. 「選択した項目の追加」をクリックします。
    3. 「選択」をクリックします。
    4. 「次」をクリックします。
  9. 「サマリー」画面で、入力した情報を確認し、「終了」をクリックします。

OIGコンプライアンス・モードが有効であることの確認

OIRIが機能するには、OIGのコンプライアンス機能が有効になっていることを確認します。

コンプライアンスが有効かどうかを確認するには:
  1. http://igdadmin.example.com/sysadmin URLを使用してOIG Sysadminコンソールにログインします。
  2. 「構成プロパティ」をクリックします。
  3. キーワードOIG.IsIdentityAuditorEnabledを使用してシステム・プロパティを検索します。
  4. プロパティを編集し、trueに設定されていることを確認します。そうでない場合は、値をtrueに修正し、「保存」をクリックします。

Kubernetesネームスペースの作成

Kubernetesネームスペースは、すべてのOIRIオブジェクトを格納するために使用されます。

次のコマンドを使用して、OIRIおよびDINGに個別のネームスペースを作成します。

kubectl create namespace <OIRINS>
kubectl create namespace <DINGNS>

たとえば:

kubectl create namespace oirins
kubectl create namespace dingns

コンテナ・レジストリ・シークレットの作成

コンテナ・レジストリを使用して、オンデマンドでOracleコンテナ・イメージをプルする場合は、コンテナ・レジストリのログイン詳細を含むシークレットを作成する必要があります。

コンテナ・イメージをローカルにステージングした場合は、このステップは必要ありません。

OIRIにコンテナ・レジストリ・シークレットを作成するには、次のコマンドを使用します:
kubectl create secret -n <OIRINS> docker-registry <REGISTRY_SECRET_NAME> --docker-server=<REGISTRY_ADDRESS> --docker-username=<REG_USER> --docker-password=<REG_PWD>
たとえば:
kubectl create secret -n oirins docker-registry regcred --docker-server=iad.ocir.io/mytenancy --docker-username=mytenancy/oracleidentitycloudservice/myemail@email.com --docker-password=<password>

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

kubectl create secret -n <DINGNS> docker-registry <REGISTRY_SECRET_NAME> --docker-server=<REGISTRY_ADDRESS> --docker-username=<REG_USER> --docker-password=<REG_PWD>
たとえば:
kubectl create secret -n dingns docker-registry regcred --docker-server=iad.ocir.io/mytenancy --docker-username=mytenancy/oracleidentitycloudservice/myemail@email.com --docker-password=<password>

Docker HubイメージのKubernetesシークレットの作成

このシークレットを使用すると、Kubernetesはhelmkubectllogstashコマンドなど、サードパーティのイメージを含むhub.docker.comからイメージをプルできます。これらのコマンドは、OUD cronジョブで、「終了中」状態から動かないポッドをテストし、必要に応じて再起動するために使用されます。

hub.docker.comにアカウントが必要です。イメージを独自のリポジトリにステージングする場合は、それを実行し、helmオーバーライド・ファイルを適宜変更できます。

hub.docker.comにKubernetesシークレットを作成するには、次のコマンドを使用します:

$ kubectl create secret docker-registry dockercred --docker-server="https://index.docker.io/v1/" --docker-username="<DH_USER>" --docker-password="<DH_PWD>" --namespace=<OUDNS>
たとえば:
$ kubectl create secret docker-registry dockercred --docker-server="https://index.docker.io/v1/" --docker-username="username" --docker-password="<mypassword>" --namespace=oudns

管理CLIの起動

管理CLIを起動する前に、永続ボリュームが作成されていることを確認します。

「ファイル・システムとマウント・ターゲットの作成」を参照してください。

管理CLIを起動するには:

  1. 次の内容を含む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_REPOSITORY>:<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
    たとえば:
    apiVersion: v1
    kind: Pod
    metadata:
      name: oiri-cli
      namespace: oirins
      labels:
        app: oiricli
    spec:
      restartPolicy: OnFailure
      volumes:
        - name: oiripv
          nfs:
            server: 0.0.0.0
            path: /exports/IAMPVS/oiripv
        - name: dingpv
          nfs:
            server: 0.0.0.0
            path: /exports/IAMPVS/dingpv
        - name: workpv
          nfs:
            server: 0.0.0.0
            path: /exports/IAMPVS/workpv
      containers:
      - name: oiricli
        image: iad.ocir.io/mytenancy/idm/oiri-cli:12.2.1.4.220429
        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. 次のコマンドを使用して、管理CLIコンテナを起動します:
    kubectl create -f oiri-cli.yaml
  3. 次のコマンドを使用して、実行中のコンテナに接続します:
    kubectl exec -n oirins -ti oiri-cli /bin/bash

    ノート:

    例で「OIRI-CLI内から次のコマンドを使用」と示されている場合は、ここで説明したように実行中のコンテナに接続して、指定したとおりにコマンドを実行する必要があります。

KubernetesクラスタへのCLIアクセス権の付与

OIRI CLIコンテナには、Kubernetesクラスタと対話するための組込みコマンドがあります。管理CLIに、Kubernetesクラスタへのアクセス方法の詳細を指定する必要があります。

アクセスを提供するには、kubectlコマンドが機能しているノードで次のステップを実行します:

Kubernetesサービス・シークレットの作成

Kubernetes 1.24リリース以降を使用している場合は、次のコマンドを使用してKubernetesサービス・アカウントのシークレットを作成する必要があります:
kubectl create -f <WORKDIR>/create_svc_secret.yaml
たとえば:
kubectl create -f /workdir/OIRI/create_svc_secret.yaml
ここで、<WORKDIR>/create_svc_secret.yamlの内容は次のとおりです:
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: oiri-service-account
  namespace: <OIRINS>
  annotations:
    kubernetes.io/service-account.name: "oiri-service-account" 

Kubernetesサービス・アカウントの作成

次のコマンドを使用して、OIRIネームスペースにKubernetesサービス・アカウントのworkdir/OIRI/create_svc.yamlファイルを作成します:
kubectl apply -f <WORKDIR>/create_svc.yaml
たとえば:
kubectl apply -f /workdir/OIRI/create_svc.yaml
create_svc.yamlファイルの内容は次のとおりです:
apiVersion: v1
kind: ServiceAccount
metadata:
  name: oiri-service-account
  namespace: <OIRINS>
---
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: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: oiri-clusterrolebinding
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: ClusterRoleBinding
metadata:
  name: oiri-clusteradmin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
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
たとえば:
apiVersion: v1
kind: ServiceAccount
metadata:
  name: oiri-service-account
  namespace: oirins
---
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: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: oiri-clusterrolebinding
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: ClusterRoleBinding
metadata:
  name: oiri-clusteradmin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
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

ca.crt証明書の生成

次のコマンドを使用してKubernetes証明書を取得します:

OIRIネームスペースおよび作業ディレクトリの環境変数を設定します。

OIRINS=<OIRINS>
WORKDIR=/workdir/OIRI
Kubernetes 1.23以前のリリースの場合は、次のコマンドを使用します:
TOKENNAME=`kubectl -n $OIRINS get serviceaccount/oiri-service-account -o jsonpath='{.secrets[0].name}'`
Kubernetes 1.24以降のリリースの場合は、次のコマンドを使用します:
TOKENNAME=oiri-service-account
TOKEN=`kubectl -n $OIRINS get secret $TOKENNAME -o jsonpath='{.data.token}'| base64 --decode`
kubectl -n $OIRINS get secret $TOKENNAME -o jsonpath='{.data.ca\.crt}'| base64 --decode > $WORKDIR/ca.crt

OIRI用のKubernetes構成ファイルの作成

Kubernetes構成ファイルを生成して、kubectlとの対話方法をOIRIに指示します。これを行うには、次のステップを実行します。

OIRIネームスペースおよび作業ディレクトリの環境変数を設定します。

OIRINS=<OIRINS>
WORKDIR=/workdir/OIRI
TOKEN=`kubectl -n $OIRINS get secret $TOKENNAME -o jsonpath='{.data.token}'| base64 --decode`
K8URL=`grep server: $KUBECONFIG | sed 's/server://;s/ //g'`
kubectl config --kubeconfig=$WORKDIR/oiri_config set-cluster oiri-cluster --server=$K8URL --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

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

OIRI-CLIコンテナへのファイルのコピー

次のコマンドを使用して、ca.crt (「ca.crt証明書の生成」を参照)およびoiri_config (「OIRI用のKubernetes構成ファイルの作成」を参照)ファイルをOIRI-CLIコンテナにコピーします:

OIRINS=<OIRINS>
WORKDIR=/workdir/OIRI
kubectl cp $WORKDIR/ca.crt $OIRINS/oiri-cli:/app/k8s
kubectl cp $WORKDIR/oiri_config $OIRINS/oiri-cli:/app/k8s/config
oiri-cliから、次のコマンドを実行します:
chmod 400  /app/k8s/config

kubectlコマンドの検証

OIRI-CLIコンテナから次のコマンドを使用して、Kubernetesコンテナ内からkubectlコマンドが機能することを検証します。

kubectl get pod -n $OIRINS
たとえば:
kubectl get pod -n oirins

このコマンドは、実行中のoiri-cliポッドを表示します。

構成ファイルの作成

OIRIでは、複数のプロパティ・ファイルを使用してOIRIをデプロイします。これらのプロパティ・ファイルは、CLIコマンドを使用して移入されます。

OIRI-CLIコンテナ内から次のステップを実行します。

設定構成ファイルの作成

初期構成ファイルを作成するには、次のコマンドを実行します:
/oiri-cli/scripts/setupConfFiles.sh -m prod \
             --oigdbhost <OIG_DB_SCAN> \
             --oigdbport <OIG_DB_LISTENER> \
             --oigdbsname <OIG_DB_SERVICE> \
             --oiridbhost <OIRI_DB_SCAN> \
             --oiridbport <OIRI_DB_LISTENER> \
             --oiridbsname <OIRI_DB_SERVICE> \
             --sparkmode k8s \
             --dingnamespace <DINGNS> \
             ----dingimage <OIRI_DING_REPOSITORY>:<OIRIDING_VER> \
             --cookiesecureflag false \
             --k8scertificatefilename <CERTIFICATE_FILE> \
             --sparkk8smasterurl k8s://<K8_URL> \
             --oigserverurl <OIG_URL>
たとえば:
/oiri-cli/scripts/setupConfFiles.sh -m prod \
             --oigdbhost db-scan.example.com \
             --oigdbport 1521 \
             --oigdbsname oig_s.example.com  \
             --oiridbhost db-scan.example.com \
             --oiridbport 1521 \
             --oiridbsname oiri_s.example.com  \
            --sparkmode k8s  \
            --dingnamespace dingns \
             --dingimage oiri-ding:12.2.1.4.02106  \
            --cookiesecureflag false \
             --k8scertificatefilename ca.crt  \
            --sparkk8smasterurl k8s://https://10.0.0.10:6443  \
            --http://governancedomain-cluster-oim-cluster.oigns.svc.cluster.local:14000
出力が次のように表示されます。
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-CLIコンテナで次のコマンドを使用して、ファイルが正しく作成されたことを確認します:
ls /app/data/conf
次のように表示されます:
config.yaml  custom-attributes.yaml   data-ingestion-config.yaml   dbconfig.yaml

Helm構成ファイルの作成

OIRIは、helmを使用してデプロイされます。helmの構成ファイルを作成するには、OIRI-CLIコンテナ内で次のコマンドを実行します。

/oiri-cli/scripts/setupValuesYaml.sh  \
              --oiriapiimage <OIRI_REPOSITORY>:<OIRI_VER> \
              --oirinamespace <OIRINS> \
              --oirinfsserver  <PVSERVER> \
              --oirireplicas <OIRI_REPLICAS> \
              --oiriuireplicas <OIRI_UI_REPLICAS> \
              --sparkhistoryserverreplicas <OIRI_DING_REPLICAS> \
              --oirinfsstoragepath <OIRI_NFS_SHARE> \
              --oirinfsstoragecapacity <OIRI_SHARE_SIZE> \
              --oiriuiimage <OIRI_UI_REPOSITORY>:<OIRIUI_VER> \
              --dingimage <OIRI_DING_REPOSITORY>:<OIRIDING_VER> \
              --dingnamespace <DINGNS> \
              --dingnfsserver <PVSERVER> \
              --dingnfsstoragepath <OIRI_DING_SHARE> \
              --dingnfsstoragecapacity <OIRI_DING_SHARE_SIZE> \
              --ingressenabled <USE_INGRESS> \
              --ingresshostname <OIRI_INGRESS_HOST> \
              --sslenabled false
たとえば:
/oiri-cli/scripts/setupValuesYaml.sh  \
              --oiriapiimage oiri:12.2.1.4.02106 \
              --oirinamespace oirins \
              --oirinfsserver  1.1.1.1 \
              --oirireplicas 2 \
              --oiriuireplicas 2 \
              --sparkhistoryserverreplicas 2 \
              --oirinfsstoragepath /exports/iampvs/oiripv \
              --oirinfsstoragecapacity 10Gi \
              --oiriuiimage oiri-ui:12.2.1.4.02106 \
              --dingimage oiri-ding:12.2.1.4.02106 \
              --dingnamespace dingns \
              --dingnfsserver 1.1.1.1 \
              --dingnfsstoragepath /exports/iampvs/dingpv \
              --dingnfsstoragecapacity 10Gi \
              --ingressenabled false \
              --ingresshostname igdadmin.example.com \
              --sslenabled false

/app/k8s/values.yamlファイルが作成されていることを確認します。

OIRIキーストアの作成

keytoolコマンドを使用して、OIRIでキーストアを作成します。このコマンドは、ORI-CLIコンテナから実行する必要があります。

次のコマンドを使用して、キーストアを作成します:
keytool -genkeypair -alias oiri -keypass <OIRI_KEYSTORE_PWD> -keyalg RSA \
             -keystore /app/oiri/data/keystore/keystore.jks \
             -storepass <OIRI_KEYSTORE_PWD> -storetype pkcs12 \
             -dname \"CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown\" \
             -noprompt

OIRIへのOIG証明書のロード

OIRIでOIGを信頼するには、OIG証明書をOIRIにロードする必要があります。

証明書をロードするには、次のステップを実行します:

OIG REST証明書の取得

OIG REST証明書(通常のOIG証明書とは異なる)を取得するには、OIG管理サーバー・コンテナ内からコマンドを実行する必要があります。

OIG REST証明書を取得するには:

  1. 次のコマンドを使用してOIG管理コンテナにログインします:
    kubectl exec -n <OIGNS> -ti <OIG_DOMAIN_NAME>-adminserver –- /bin/bash
    たとえば:
    kubectl exec -n oigns -ti governancedomain-adminserver –- /bin/bash
  2. 次のコマンドを使用して証明書を取得します:
    keytool -export -rfc -alias xell \
                   -file /u01/user_projects/workdir/xell.pem \
                   -keystore /u01/user_projects /domains/$OIG_DOMAIN_NAME/config/fmwconfig/default-keystore.jks \
                   -storepass <OIG_WEBLOGIC_PWD>
    たとえば:
    keytool -export -rfc -alias xell \
                   -file /u01/user_projects/workdir/xell.pem \
                   -keystore /u01/user_projects /domains/governancedomain/config/fmwconfig/default-keystore.jks \
                   -storepass <password>
  3. 次のコマンドを使用して、証明書をOIRIにコピーします。このコマンドは、管理ノードから実行する必要があります:
    kubectl cp <OIGNS>/<OIG_DOMAIN_NAME> adminserver:/u01/oracle/user_projects/workdir/xell.pem <WORKDIR>/xell.pem
    kubectl cp <WORKDIR>/xell.pem <OIRINS>/oiri-cli:/app/k8s/xell.pem
    たとえば:
    kubectl cp oigns/governancedomain-adminserver:/u01/oracle/user_projects/workdir/xell.pem /workdir/OIRI
    kubectl cp /workdir/OIRI/xell.pem oirins/oiri-cli:/app/k8s/xell.pem
Kubernetes内で実行されているOIG

Kubernetes内でコマンドを実行する必要があります。

Kubernetes内で実行されていないOIG
  1. OIGホストにログインし、ディレクトリをDOMAIN_HOME/config/fmwconfig/に変更します。

    例:

    cd /u01/oracle/config/domains/governancedomain/config/fmwconfig/

    (オプション) <ステップの例を入力します。>
  2. 次のコマンドを使用して、証明書を取得します:
    
    keytool -export -rfc -alias xell \
                   -file /tmp/xell.pem \
                   -keystore <DOMAIN_HOME>/config/fmwconfig/default-keystore.jks \
                   -storepass <OIG_WEBLOGIC_PWD>

    例:

    
    keytool -export -rfc -alias xell \
                   -file /tmp/xell.pem \
                   -keystore /u01/oracle/config/domains/governancedomain/config/fmwconfig/default-keystore.jks \
                   -storepass password
  3. /tmp/xell.pemファイルを、Kubernetesクラスタにアクセスできるホストに転送します。

    ノート:

    推奨される方法は、ファイルを<WORKDIR>内に配置することです。
  4. 次のコマンドを使用して、証明書をOIRIにコピーします。このコマンドは、管理ノードから実行する必要があります:
    kubectl cp <WORKDIR>/xell.pem <OIRINS>/oiri-cli:/app/k8s/xell.pem
    kubectl cp /workdir/OIRI/xell.pem oirins/oiri-cli:/app/k8s/xell.pem

OIRIへのOIG REST証明書のインポート

OIRIコンテナでOIG REST証明書のコピーを取得した後、OIRI-CLIコンテナから次のコマンドを使用して証明書をインポートする必要があります。
keytool -import \
               -alias xell \
               -file /app/k8s/xell.pem \
               -keystore /app/oiri/data/keystore/keystore.jks\
               -storepass  <OIRI_KEYSTORE_PWD> -noprompt

OIG SSL証明書の取得

OIG REST証明書に加えて、OIG SSL証明書も信頼する必要があります。この証明書はロード・バランサに割り当てられます。この証明書を取得する最も簡単な方法は、OIGロード・バランサにアクセスできる次のコマンドを使用することです:

openssl s_client -connect <OIG_LBR_HOST>:<OIG_LBR_PORT> -showcerts </dev/null 2>/dev/null|openssl x509 -outform PEM > <OIG_LBR_HOST>.pem
たとえば:
openssl s_client -connect prov.example.com:443 -showcerts </dev/null 2>/dev/null|openssl x509 -outform PEM > prov.example.com.pem
次のコマンドを使用して、証明書をOIRI-CLIコンテナにコピーします:
kubectl cp /workdir/OIRI/prov.example.com.pem oirins/oiri-cli:/app/k8s/prov.example.com.pem

OIRIへのOIG SSL証明書のインポート

OIRIコンテナでOIG証明書のコピーを取得した後、OIRI-CLIコンテナから次のコマンドを使用して証明書をインポートする必要があります:
keytool -import \
               -alias oigssl \
               -file /app/k8s/<CERT_FILE> \
               -keystore /app/oiri/data/keystore/keystore.jks\
               -storepass  <OIRI_KEYSTORE_PWD> -noprompt
たとえば:
keytool -import \
               -alias oigssl \
               -file /app/k8s/prov.example.com.pem \
               -keystore /app/oiri/data/keystore/keystore.jks\
               -storepass <password> -noprompt

ウォレットの作成

OIRIは、データベース/OIG接続情報をウォレットに格納します。OIRI-CLIポッド内からコマンドを実行して、ウォレットを作成する必要があります。

ウォレットを作成するには、次のコマンドを使用します:
oiri-cli --config=/app/data/conf/config.yaml wallet create \
             --oigsau <OIRI_SERVICE_USER> \
             --oigsap <OIRI_SERVICE_PWD> \
             --oirijka oiri \
             --oirijkp <OIRI_KEYSTORE_PWD> \
             --oiriksp <OIRI_KEYSTORE_PWD> \
             --oiridbuprefix <OIRI_RCU_PREFIX> \
             --oiridbp <OIRI_SCHEMA_PWD> \
             --oigdbu <OIG_RCU_PREFIX>_OIM \
             --oigdbp <OIG_SCHEMA_PWD>
たとえば:
oiri-cli --config=/app/data/conf/config.yaml wallet create \
             --oigsau oirisvc \
             --oigsap myservicepwd \
             --oirijka oiri \
             --oirijkp mykeystorepwd \
             --oiriksp mykeystorepwd \
             --oiridbuprefix oiri \
             --oiridbp myschemapwd \
             --oigdbu IGD_OIM \
             --oigdbp myoigschemapwd
次のコマンドを使用して、ウォレットが作成されたことを確認します:
ls /app/data/wallet /app/oiri/data/wallet

データベース・スキーマの作成

OIRI-CLIコンテナからコマンドを実行して、データベースにOIRIデータベース・スキーマを作成します。

次のコマンドを使用します。
oiri-cli --config=/app/data/conf/config.yaml schema create /app/data/conf/dbconfig.yaml --sysp <OIRI_DB_SYS_PWD>
oiri-cli --config=/app/data/conf/config.yaml schema migrate /app/data/conf/dbconfig.yaml
出力は次のようになります:
Creating the schema oiri_oiri
CREATING OIRI SCHEMA ............
===================================================
DB USER oiri_oiri has been successfully created
Migrating the OIRI schema
Migrating OIRI SCHEMA ............
===================================================
log4j:WARN No appenders could be found for logger (org.flywaydb.core.internal.scanner.classpath.ClassPathScanner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
========== Before Migrate =============
 Script:V1__RoleMining.sql Installed On:null State:PENDING Version:1 Description:RoleMining
========== After Migrate =============
 Script:V1__RoleMining.sql Installed On:2021-03-02 08:01:54.18592 State:SUCCESS Version:1 Description:RoleMining
OIRI Schema has been successfully migrated

ウォレットの確認

ウォレットを作成したら、ウォレットを検証する必要があります。検証に失敗した場合は、続行する前にウォレットを修正します。

次のコマンドを使用して、ウォレットを確認します:
./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.
検証が失敗した場合は、次のコマンドを使用してウォレットを修正します:
oiri-cli --config=/app/data/conf/config.yaml wallet update

Helmを使用したOIRIのデプロイ

ネームスペースを作成した後、生成されたHelmチャートを使用してOIRIをデプロイできます。コマンドはOIRI-CLIから実行する必要があります。

次のコマンドを使用します。
helm install oiri /helm/oiri -f /app/k8s/values.yaml
出力は次のようになります:
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が実行中であることの確認

OIRIをデプロイした後、正常に実行されていることを確認する必要があります。

OIRIが実行されていることを確認するには、次のコマンドを使用します:
kubectl -n <OIRINS> get pods -o wide
kubectl -n <DINGNS> get pods -o wide

ステータスが「実行中」のポッドのリストが表示されます。たとえば:

NAME                    READY     STATUS    RESTARTS   AGE
oiri-6cd5755fb-j7r4      1/1      Running    0         42h
oiri-6cd5755fb-s42xx     1/1      Running    0         42h
oiri-ui-d55cd6b69-62nm6  1/1      Running    0         42h
oiri-ui-d55cd6b69-rxdwm  1/1      Running    0         42h
kubectl -n dingns get pods
NAME                                   READY   STATUS    RESTARTS AGE
oiri-ding-7045127aee424d93-driver      0/1     Completed  0       41h
spark-history-server-6cc6d9d8c7-2594r  1/1     Running    0       42h
spark-history-server-6cc6d9d8c7-jdcqc  1/1     Running    0       42h

Kubernetes NodePortサービスの作成

デフォルトでは、ClusterIPサービスとして構成されたすべてのコンポーネントでOIRIが作成されます。この構成は、Oracle Identity Role IntelligenceコンポーネントがKubernetesクラスタ内でのみ表示されることを示しています。

エンタープライズ・デプロイメントでは、OIRIコンポーネントとのすべての対話は、Kubernetesクラスタの外部にあるOracle HTTP Serverを介して行われます。OHSおよびイングレス・コントローラを使用する場合は、イングレス・サービスが自動的に作成されます。NodePortデプロイメントを使用している場合は、NodePortサービスを作成してデプロイメントにアクセスする必要があります。

OIRI NodePortサービスの作成

OIRI NodePortサービスを作成するには:
  1. 次の内容を含むoiri_nodeport.yamlテキスト・ファイルを作成します:
    kind: Service
    apiVersion: v1
    metadata:
      name: oiri-nodeport
      namespace: <OIRINS>
    spec:
      type: NodePort
      selector:
        app: oiri
      ports:
        - targetPort: 8005
          port: 8005
          nodePort: <OIRI_K8>
          protocol: TCP

    ノート:

    namespaceが、使用するネームスペースに設定されていることを確認します。
    たとえば:
    kind: Service
    apiVersion: v1
    metadata:
      name: oiri-nodeport
      namespace: oirins
    spec:
      type: NodePort
      selector:
        app: oiri
      ports:
        - targetPort: 8005
          port: 8005
          nodePort: 30305
          protocol: TCP
  2. 次のコマンドを使用して、サービスを作成します:
    kubectl create -f oiri_nodeport.yaml

OIRI UI NodePortサービスの作成

OIRI UI NodePortサービスを作成するには:
  1. 次の内容を含むoiriui_nodeport.yamlテキスト・ファイルを作成します:
    kind: Service
    apiVersion: v1
    metadata:
      name: oiri-ui-nodeport
      namespace: <OIRINS>
    spec:
      type: NodePort
      selector:
        app: oiri-ui
      ports:
        - targetPort: 8080
          port: 8080
          nodePort: <OIRI_UI_K8>
          protocol: TCP

    ノート:

    namespaceが、使用するネームスペースに設定されていることを確認します。
    たとえば:
    kind: Service
    apiVersion: v1
    metadata:
      name: oiri-ui-nodeport
      namespace: oirins
    spec:
      type: NodePort
      selector:
        app: oiri-ui
      ports:
        - targetPort: 8080
          port: 8080
          nodePort: 30306
          protocol: TCP
  2. 次のコマンドを使用して、サービスを作成します:
    kubectl create -f oiriui_nodeport.yaml

OHS構成の更新

まだ行っていない場合は、Oracle HTTP構成にOIRIエントリを追加する必要があります。

「Oracle Identity Role Intelligence用のOracle HTTP Serverの構成」を参照してください。

Data Ingesterを使用した初期データ・ロードの実行

OIRIが起動して実行した後、OIGデータベースから初期データ・ロードを実行する場合があります。

データ・ロードには、次のステップを実行します:

DING CLIの起動

DING CLIを起動するには、kubectlコマンドにアクセスできるノードで次のステップを実行します:
  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_REPOSITORY>:<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
    たとえば:
    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: 0.0.0.0
            path: /exports/IAMPVS/oiripv
        - name: dingpv
          nfs:
            server: 0.0.0.0
            path/exports/IAMPVS/dingpv
        - name: workpv
          nfs:
            server: 0.0.0.0
            path: /exports/IAMPVS/workpv
      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 create -f ding-cli.yaml
  3. 次のコマンドを使用して、実行中のコンテナに接続します:
    kubectl exec -n dingns -ti oiri-ding-cli –- /bin/bash

    ノート:

    例で「OIRI-CLIから次のコマンドを発行」と示されている場合は、ここで説明したように実行中のコンテナに接続して、指定したとおりにコマンドを実行する必要があります。

DINGへのKubernetes証明書のコピー

DINGとKubernetes間の対話を有効にするには、Kubernetes証明書をDINGコンテナにコピーする必要があります。

証明書をコピーするには:

  1. デプロイメント・サーバー上で次のコマンドを実行して、Kubernetes証明書を取得します。このコマンドは、ローカルにマウントされたDING永続ボリュームに証明書をコピーします:
    grep certificate-authority-data $KUBECONFIG | tr -d " " | sed 's/certificate-authority-data://' | base64 -d > /workdir/OIRI/ca.crt
  2. 結果のファイルに、次のような有効な証明書があることを確認します:
    -----BEGIN CERTIFICATE-----
    RANDOM CHARACTERS
    RANDOM CHARACTERS
    RANDOM CHARACTERS
    -----END CERTIFICATE----- 
  3. 次のコマンドを使用して、証明書をDINGコンテナにコピーします:
    kubectl cp <WORKDIR>/ca.crt <DINGNS>/oiri-ding-cli:/app/ca.crt
    たとえば:
    kubectl cp /workdir/OIRI/ca.crt dingns/oiri-ding-cli:/app/ca.crt

DING構成の確認

DINGは、OIGデータベースを指すように設定の一部として構成されます。DING-CLIから次のコマンドを使用して、DINGがデータベースに正常に接続できることを確認します:
ding-cli --config=/app/data/conf/config.yaml data-ingestion verify /app/data/conf/data-ingestion-config.yaml
次のメッセージが表示されます。
SUCCESS: Data Ingestion Config is valid

データ収集の実行

データ収集を開始するには、DING-CLIから次のコマンドを使用します:
ding-cli --config=/app/data/conf/config.yaml data-ingestion start /app/data/conf/data-ingestion-config.yaml
次のようなエントリが表示されます:
INFO: 21/07/28 18:02:43 INFO LoggingPodStatusWatcherImpl: Application status for spark-901c5ed4ba4e4233b4501b8e1279a9cf (phase: Succeeded)

このエントリは、データ・ロードが成功したことを示します。

次のデータ・ロードを増分に設定

Data Ingesterを使用した初期データ・ロードにより、すべてのOIGデータがOIRIデータベースにロードされます。「Data Ingesterを使用した初期データ・ロードの実行」を参照してください。将来のロードでは、データを変更する必要があります。データを変更するには、DING-CLIから次のコマンドを実行します:
/ding-cli/scripts/updateDataIngestionConfig.sh \
         --entityusersenabled true --entityuserssyncmode incremental \
          --entityapplicationsenabled true --entityapplicationssyncmode incremental \
          --entityentitlementsenabled true --entityentitlementssyncmode incremental \
          --entityassignedentitlementsenabled true --entityassignedentitlementssyncmode incremental \
          --entityrolesenabled true --entityrolessyncmode incremental \
           --entityrolehierarchyenabled true --entityrolehierarchysyncmode incremental \
           --entityroleusermembershipsenabled true --entityroleusermembershipssyncmode incremental \
            --entityroleentitlementcompositionsenabled true --entityroleentitlementcompositionssyncmode incremental \
          --entityaccountsenabled true --entityaccountssyncmode