5.8 インストールのトラブルシューティング

この項では、OAA、OARMおよびOUAのインストールに関するトラブルシューティングのヒントを示します。

5.8.1 installManagementContainer.shの実行中の問題

この項では、installManagementContainer.shの実行中に発生する問題のトラブルシューティングのヒントを示します。

OAA管理コンテナのインストール中のPodmanの問題

  • イメージまたはファイル形式のエラーのために、Podmanがtarファイル内のOAAイメージをロードできません。たとえば:
    Storing signatures
    Getting image source signatures
    Copying blob 01092b6ac97d skipped: already exists
    Copying blob dba9a6800748 skipped: already exists
    Copying blob bae273a35c58 skipped: already exists
    Copying blob 7f4b55b885b0 skipped: already exists
    Copying blob 93e8a0807a49 skipped: already exists
    Copying blob fa5885774604 skipped: already exists
    Copying blob 3b8528487f10 skipped: already exists
    Copying blob 3a1c2e3e35f4 [==========================>-----------] 213.8MiB / 298.1MiB
    Copying blob 6d31843e131e [=================================>----] 210.5MiB / 236.5MiB
    Copying blob f35b9630ef38 [===========>--------------------------] 213.8MiB / 672.2MiB
    Copying blob ef894c2768e3 done
    Copying blob 846fd069f886 [==========>---------------------------] 197.7MiB / 672.2MiB
    Copying blob 257c48b76c82 done
    Error: payload does not match any of the supported image formats (oci, oci-archive, dir, docker-archive)
    原因として、インストール・ホストのルート・パーティションの空き領域が不足している(Podmanは一時ファイルを/var/tmpに格納する)か、Podmanバージョンが3.3.0以降でないことが考えられます。このエラーが発生した場合は、問題に対処した後で、/var/tmp下のすべてのファイルを削除してから、インストールを再試行してください。
  • 権限の問題のために、Podmanがtarファイル内のOAAイメージをロードできません。たとえば:
    Using image release files ./releaseimages.txt and ./nonreleaseimages.txt...
    tee: ./oaainstall-tmp/run.log: Permission denied
    Using install settings from ./installOAA.properties.
    tee: ./oaainstall-tmp/run.log: Permission denied
    Checking kubectl client version...
    WARNING: version difference between client (1.23) and server (1.21) exceeds
    the supported minor version skew of +/-1
    tee: ./oaainstall-tmp/run.log: Permission denied
    kubectl version required major:1 minor:18, version detected major:1 minor:23
    tee: ./oaainstall-tmp/run.log: Permission denied

    原因として、あるユーザーとしてzipファイルを抽出したが、権限のない別のユーザーとしてinstallManagementContainer.shを実行したことが考えられます。この場合は、$WORKDIR/oaaimages/oaa-install/oaainstall-tmpディレクトリを削除して、zipファイルを抽出したユーザーと同じユーザーでインストールを再試行してください。

  • Podmanは、前回のインストール試行でOAAイメージのロードに失敗した後、必要なすべてのイメージのプル/タグ/プッシュを実行しません。この場合は、$WORKDIR/oaaimages/oaa-install/oaainstall-tmpディレクトリを削除して再試行してください。

OAA管理チャートのインストールの失敗

OAA管理チャートのインストールが次のエラーで失敗した場合:
Executing 'helm install ...  oaamgmt charts/oaa-mgmt'.
Continue? [Y/N]:
y
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec.template.spec.containers[0]): unknown field "volumMounts" in io.k8s.api.core.v1.Container
OAA管理チャートのマニフェスト・ファイルが破損した可能性があります。installOAA.propertiescert.p12およびtrust.p12を安全な場所にコピーし、インストール・ディレクトリ$WORKDIR/oaaimages/oaa-installを削除してから、<OAA_Image>.zipを抽出してインストールを再開します。

インストール・スクリプトがOAA管理コンテナ・ポッドの起動を待ってタイムアウトしました

次のエラーが表示される場合があります。
NAME                                     READY   STATUS              RESTARTS   AGE
oaamgmt-oaa-mgmt-74c9ff789d-wq82h   0/1     ContainerCreating   0          2m3s
Waiting 15 secs for OAA mgmt deployment to run...
Executing 'kubectl get pods oaamgmt-oaa-mgmt-74c9ff789d-wq82h -n oaans'...
NAME                                     READY   STATUS              RESTARTS   AGE
oaamgmt-oaa-mgmt-74c9ff789d-wq82h   0/1     ContainerCreating   0          2m18s
Waiting 15 secs for OAA mgmt deployment to run...
...
OAA mgmt pod is not running after 450 secs, cannot proceed with install.
Critical error, exiting. Check ./oaainstall-tmp/run.log for additional information.
この場合は、次のコマンドを実行して追加情報を取得してください:
$ kubectl get pods -n oaans
$ kubectl describe pod oaamgmt-<pod> -n oaans
  • NFSのエラーの場合は、installOAA.propertiesのNFSボリューム情報が正しいことを確認します。この場合は、kubectl describeで次のように表示されます:
    Output: mount.nfs: mounting <ipaddress>:/scratch/oaa/scripts-creds failed, reason given by server: No such file or directory
      Warning  FailedMount  15s  kubelet, <ipaddress>  Unable to attach or mount volumes: unmounted volumes=[oaamgmt-oaa-mgmt-configpv oaamgmt-oaa-mgmt-credpv oaamgmt-oaa-mgmt-logpv], unattached volumes=[oaamgmt-oaa-mgmt-configpv oaamgmt-oaa-mgmt-credpv oaamgmt-oaa-mgmt-logpv oaamgmt-oaa-mgmt-vaultpv default-token-rsh62]: timed out waiting for the condition
  • イメージ・プル・エラーの場合は、イメージ・プル・シークレット(dockersecret)が正しく作成され、installOAA.propertiesのプロパティinstall.global.repoinstall.global.image.tagおよびinstall.global.imagePullSecrets\[0\].nameが正しいことを確認します。この場合は、kubectl describe podで次のように表示されます:
    Warning  Failed     21s (x3 over 61s)  kubelet, <ipaddress>  Error: ErrImagePull
    Normal   BackOff    7s (x3 over 60s)   kubelet, <ipaddress>  Back-off pulling image "container-registry.example.com/oracle/shared/oaa-mgmt:<tag>"
    Warning  Failed     7s (x3 over 60s)   kubelet, <ipaddress>  Error: ImagePullBackOff
  • 明らかなエラーがなくタイムアウトする場合、クラスタでOAA管理イメージのダウンロードに時間がかかりすぎている可能性があります。この場合、管理ポッドは最終的に起動されますが、インストールは中止されます。これが発生した場合は、helm delete oaamgmt -n oaansを使用してOAA管理helmリリースを削除し、インストール・スクリプトを再実行します。

5.8.2 OAA.shの実行中の問題

この項では、OAA.shの実行中に発生する問題のトラブルシューティングのヒントを示します。

OAA.shの実行中の一般的な失敗

どこかのステージでOAA.shデプロイメントが失敗した場合、通常は根本的な問題を修正してからOAA.shを再実行できます。インストールによってすでに実行された構成タスクは、OAA.shの再実行時にはスキップされます。

ログ情報

OAA.shの実行中にデプロイメントが失敗し、詳細情報が必要な場合、install.logを参照できます。このログには、管理コンテナ内部(/u01/oracle/logs)から、またはコンテナの外部(<NFS_LOGS_PATH>)からアクセスできます。

install.logが別のコンポーネント・ログ・ファイルを参照している場合、このログも同じ場所にあります。

Trust and Cert Store Configuration failed

次のようなメッセージが表示され:
Configuring Trust and Cert Store for OAA.
Trust and Cert Store Configuration failed. Check log /u01/oracle/logs/install.log for details.
かつ、install.logに次のように示されている場合:
Configuring Trust and Cert Store for OAA.
Checking oauth.identityuri mentioned in /u01/oracle/scripts/settings/installOAA.properties
 Property oauth.identityuri is https, will proceed to download certificate for https://ohs.example.com
 Checking url connectivity for https://ohs.example.com - 139784391608128:error:02002071:system library:connect:No route to host:crypto/bio/b
_sock2.c:110: 139784391608128:error:2008A067:BIO routines:BIO_connect:connect error:crypto/bio/b_sock2.c:111: connect:errno=113
Failed
これは次の2つのうちのいずれかを意味します。
  • アクセス先のURL (https://ohs.oracle.comなど)にアクセスできません。または、
  • アクセス先のOHS (またはロード・バランサ)がデフォルトの443ポートを使用しており、installOAA.propertiesoauth.identityuriパラメータに:443が追加されていません。「installOAA.propertiesの編集」を参照してください。

<NFS_CONFIG>/installOAA.propertiesを編集して問題を解決し、OAA.shを再度実行します。

OAA.shの実行中にOAuthの作成に失敗する

インストール時に、OAuthドメイン、クライアントおよびリソース・サーバーが作成されます。失敗した場合は、OAuthのパラメータが正しいかどうかを確認します「OAuthおよびOracle HTTP Serverの構成」を参照してください。

OAA.shの実行中にOAuthの作成に失敗する

これは、httpd.confおよびmod_wl_ohs.confファイルが更新されない場合に発生します。値を更新するには、「OAuthおよびOracle HTTP Serverの構成」を参照してください。

Configuring OAM for OAA.OAM for OAA setup failed

次のようなメッセージが表示され:
Configuring OAM for OAA. OAM for OAA setup failed. Check log /u01/oracle/logs/install.log for details.
install.logに参照先として/u01/oracle/logs/add_resources.logが示されていることがあります。add_resources.logに次のように示されていることがあります:
curl -sk --connect-timeout 30  -X POST 'https://ohs.example.com/oam/services/rest/11.1.2.0.0/ssa/policyadmin/resource'  -H 'Content-Type: application/json' -H 'Authorization: Basic <Base64EncodedUser:Password>' -d '{"queryString":null,"applicationDomainName":"IAM Suite","hostIdentifierName":"IAMSuiteAgent","resourceURL":"/oauth2/rest/**","protectionLevel":"EXCLUDED","QueryParameters":null,"resourceTypeName":"HTTP","Operations":null,"description":"/oauth2/rest/**","name":"/oauth2/rest/**","id":"1"}'
エラーが参照されていない場合は、管理コンテナ内からコマンドを実行します。<Base64EncodedUser:Password>は、installOAA.propertiesのパラメータoauth.basicauthzheaderに設定されている値に置き換える必要があります。エラーError 401--Unauthorizedが返された場合、これはoauth.basicauthzheaderに設定された値が正しくないことを意味します。<NFS_CONFIG>/installOAA.propertiesを編集し、パラメータを正しい値に設定します。次に、OAA.shを再実行します。詳細は、「installOAA.propertiesの編集」を参照してください。

ポッドの起動の問題

OAA.shの実行中に、出力の表示がInstalling OAAセクションに到達すると、次を実行してポッドのステータスを確認できます:
kubectl get pods -n oaans
いずれかのポッドが失敗するか、起動しない場合は、次のコマンドを実行して詳細を取得できます:
kubectl logs -f <pod> -n oaans
kubectl describe pod <pod> -n oaans

OAA.shの実行中にポッドの起動に失敗し、CrashLoopBackOffが表示される

エラーが表示されたポッドに対してkubectl logs <pod> -n <namespace>コマンドを実行します。エラーの原因の1つとして、次のことが考えられます:

そのエントリのmod_wl_ohs.confPathTrimおよびPathPrependが更新されなかったため、ポッドはhttps://ohs.example.com/.well-known/openid-configurationに接続できませんでした。「OAuthおよびOracle HTTP Serverの構成」を参照してください。

OAA.shのインストールがタイムアウトしたのにポッドが実行中と表示される

OAAインストールがタイムアウトしたのに、OAAポッドにエラーが表示されず、最終的に実行中状態になった場合、クラスタでOAAイメージのダウンロードに時間がかかりすぎていた可能性があります。この場合、OAAポッドは最終的に起動されますが、インストールは完了しません。これが発生した場合は、インストールをクリーン・アップし、インストール・スクリプトを再実行します。

Kubectlで"Unable to connect to the server: net/http: TLS handshake timeout"と報告される

考えられる原因は次のとおりです:
  • プロキシは環境で定義されていますが、no_proxy環境変数にクラスタ・ノードが含まれていません。この問題を解決するには、クラスタ・ノードのIPまたはホスト名をno_proxy環境変数に追加する必要があります。
  • kube構成ファイル~/.kube/configまたは/etc/kubernetes/admin.confが無効です。

Failed to import snapshot

インストール中に次のメッセージが表示された場合:
Importing the snapshot file : /u01/oracle/scripts/oarm-12.2.1.4.1-base-snapshot.zip
Executing CURL : curl --silent -k --location --request POST ‘https://ohs.example.com/policy/risk/v1/snapshots’
      --header ‘Authorization: Basic b2FhaW5zdGFsbC1vYWEtcG9saWN5OldlbGNvbWUx’      --header ‘Content-type: ap
plication/octet-stream’      --data-binary ‘@/u01/oracle/scripts/oarm-12.2.1.4.1-base-snapshot.zip’
Import status : {“status”:“201",“message”:“Snapshot created successfully.“,”snapshot”:{“name”:“OARM Snapshot”,“description”:“OARM Snapshot”,“snapshotId”:“1",“createTime”:“10-10-2024 16:32:45"}}
Upload status : 201
Snapshot ID : 1
Applying snapshot : curl --silent -k --location --request POST ‘https://ohs.example.com/policy/risk/v1/snapshots/1/apply’      --header ‘Authorization: Basic b2FhaW5zdGFsbC1vYWEtcG9saWN5OldlbGNvbWUx’
Apply result : <html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx</center>
</body>
</html>
parse error: Invalid numeric literal at line 1, column 7
Fail to apply the snapshot: 1
Failed to import snapshot.
イングレス・コントローラがスナップショットのインポートを完了する前にタイムアウトしている可能性があります。可能な解決策の1つとして、イングレス・コントローラを次のように更新する方法があります:
kubectl annotate ingress -n oaans nginx.ingress.kubernetes.io/proxy-read-timeout=3600
      nginx.ingress.kubernetes.io/proxy-connect-timeout=3600
      nginx.ingress.kubernetes.io/proxy-send-timeout=3600 --all

OAAでのTAPパートナの作成中のエラー'jq: error: Invalid escape at line 1, column 6`

OAA.shの実行中に次のエラーが表示された場合は、oua.tapAgentFilePass値がbase64で設定されていません:
jq: error: Invalid escape at line 1, column 6 (while parsing '"\�"') at <top-level>, line 1:
.agentName |= if . == "" then "MFAOAAPartner17ohsapr9" else . end |             .privateKey |= if . == "" then "CECECECE0000000200000001..etc..  
jq: 1 compile error
Creating tap partner in OAA

この問題を解決するには、値をbase64バージョンのパスワードに設定し、OAA.shを再度実行します。「インストールのためのプロパティ・ファイルの準備」を参照してください。

DRSSログの不正なOracle Access Managerリクエスト

DRSSポッド・ログに次のエラーが表示される場合:
<DATE> Thread[http-thread-34,5,server]: INFO oracle.security.am.drss.handler.oam.OAMHandler parseOAMResponse Exception during parseOAMResponse Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
 at [Source: (String)"<html><head><title>Bad Oracle Access Manager Request</title><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"></head><body><h1>Bad Oracle Access Manager Request</h1><p>Unable to process the request due to unexpected error.</p></body></html>
oua.oamRuntimeEndpointinstallOAA.propertiesで正しく設定されていないか、OAMサーバーの完全修飾ホスト名に設定されていないか、OAMサーバーが正しく機能していません。

クリーンアップ中にOAuthからOAAドメインを削除できない

ドメイン内のすべてのクライアントおよびリソースをリストし、1つずつ削除してから、ドメインを削除します:
  1. コマンドを使用して、OAM管理者ユーザーとそのパスワードをエンコードします:
    echo -n <username>:<password> | base64
    たとえば:
    echo -n oamadmin:<password> | base64
    この値は、次の例の<ENCODED_OAMADMIN>に使用する必要があります。
  2. 次を実行します:
    $ curl --location --request DELETE 'http://<OAuth_Host>:<OAuth_port>/oam/services/rest/ssa/api/v1/oauthpolicyadmin/oauthidentitydomain?name=OAADomain' \
    --header 'Authorization: Basic <ENCODED_OAMADMIN>'
    OAuth Identity Domain is not empty. Kindly remove (resource/client) entities from identity domain
    $ curl --location --request GET 'http://<OAuth_Host>:<OAuth_port>/oam/services/rest/ssa/api/v1/oauthpolicyadmin/client?identityDomainName=OAADomain' --header 'Content-Type: application/json' --header 'Authorization: Basic <ENCODED_OAMADMIN>'
    $ curl --location --request GET 'http://<OAuth_Host>:<OAuth_port>/oam/services/rest/ssa/api/v1/oauthpolicyadmin/application?identityDomainName=OAADomain' --header 'Content-Type: application/json' --header 'Authorization: Basic <ENCODED_OAMADMIN>'