Discover Domain Toolは、既存のドメインを検査し、そこから構成およびバイナリを収集することでモデルおよびアーカイブ・ファイルを作成するためのブートストラップ・メカニズムを提供します。
デフォルトでは、ツールによって生成されるモデル・ファイルは、Create Domain、Update DomainまたはDeploy Applications Toolで直接使用することはできません。これは、Discover Domain Toolは既存のドメインからパスワードを検出しないためです。 かわりに、検出されたパスワードの--FIX ME--
プレースホルダーを配置します。 セキュリティ・プロバイダ・データもデフォルトで検出されません。 したがって、このツールは、モデルのdomainInfo
セクションのAdminUserName
およびAdminPassword
フィールドに同じプレースホルダー値をインジェクトします。 このツールの考え方は、生成されたモデルおよびアーカイブ・ファイルを、他のツールの1つを実行するためのニーズに合わせて編集できる開始点を提供するだけです。
WDT 4.2.0では、デフォルトの動作を変更するために、いくつかのオプション機能が追加されています。これにより、Discover Domain Toolで、モデル・ファイルを編集せずに他のツールで使用可能な完全移入モデルを生成できるパスワードおよびセキュリティ・プロバイダ・データを検出できるようになります。 詳細は、「セキュリティ情報の検出」の項を参照してください。
Discover Domainツールは、オフライン・モードまたはオンライン・モードで実行でき、各モードにはその動作を制御するオプションがあります。
-skip_archive
引数をコマンドラインで使用してツールを起動します。 -skip_archive
モード - このモードでは、アーカイブ・ファイルが作成されていないため、ツールはどこからでも実行できます。-remote
モード - このモードは、-skip_archive
モードと似ていますが、ドメインの完全なモデルを作成するために収集およびアーカイブ・ファイルに追加する必要があるアーティファクトをユーザーに通知するTODO
メッセージのリストがツールによって生成される点が異なります。-ssh_user
(デフォルトでは、このツールを実行しているユーザーと同じユーザー)には、ドメイン・ホーム・ディレクトリ構造およびドメイン固有のファイルがサーバーに格納されるその他のロケーションへの完全な読取りアクセス権が必要です。 SSHモードでの実行の詳細は、「SSHのサポート」およびVerify SSH Toolのページを参照してください。 変数ファイルのロケーションを指定したコマンドラインの-variable_file
引数を使用して、資格証明関連の属性(ユーザー名およびパスワード)のモデルで生成される内容をカスタマイズできます。 このファイルはJavaプロパティ・ファイルで、モデルで見つかった資格証明関連属性ごとにkey=valueのペアが含まれます。 キーは特定の属性の一意のトークン名で、値は置換値です。デフォルトでは、ユーザー名属性に検出された値が移入され、パスワード属性に空の文字列が移入されます。 モデル内の属性は、トークン名とプロパティ・フィールド表記でインジェクトされます。 たとえば、@@PROP:AdminUserName@@
または@@PROP:JDBCSystemResource.<Name>.JdbcResource.JDBCDriverParams.PasswordEncrypted@@
です。
「変数インジェクション」が構成されていても、-variable_file
引数が使用されていない場合、変数ファイルはモデル・ファイルと同じ名前で作成されます。ファイル拡張子は.properties
です。 アーカイブおよびモデル・ファイルと同様に、Discover Domain Toolの各実行では、既存の変数ファイルの内容が現在の実行の値で上書きされます。
モデルがモデル・ファイルに永続化される前に、変数インジェクタまたはモデル・フィルタがその順序で実行されます。 最後のステップはバリデーションで、モデル、アーカイブおよび変数ファイルの内容をバリデートします。 バリデーションが成功した場合、モデルは保持されます。 これらの3つのトピックの詳細は、次を参照してください:
結果のモデルは、Oracle WebLogic Server Kubernetes Operatorなどの特定のターゲット環境との互換性のために変更することもできます。 詳細については、「ターゲット環境」を参照してください。
問題(または成功)は、Discover Domain Tool サマリーは、ツールのバージョンとOracleホーム、およびツールが実行されたWLSTモード(オンラインまたはオフライン)を出力します。 すべての重要なメッセージの要約が、各タイプの合計とともにリストされます。
単一のSEVEREメッセージを含むサマリーの例を次に示します:
Issue Log for discoverDomain version 4.2.0 running WebLogic version 12.1.3.0.0 in online mode against server using WebLogic version 12.1.3.0.0:
SEVERE Messages:
1. WLSDPLY-20008: discoverDomain argument processing failed: discoverDomain invoked with ambiguous configuration: -passphrase argument was specified without one of the associated arguments: -discover_passwords or -discover_security_provider_data.
Total: SEVERE : 1 WARNING : 0
discoverDomain.sh failed due to a parameter validation error
Discover Domain Toolをオフライン・モードで実行するには、単にOracleホームとドメインのロケーションを指定します。 検出されたドメイン情報が書き込まれるモデル・ファイルおよびアーカイブ・ファイルのロケーションとファイル名を指定します。 モデルは、YAML形式またはJSON形式のいずれかで生成できます。 正しいサフィクスを使用してファイル名にラベルを付けます。
基本的なdiscoverDomainの例:
$ weblogic-deploy\bin\discoverDomain.cmd -oracle_home c:\wls12213 -domain_home domains\DemoDomain -archive_file DiscoveredDemoDomain.zip -model_file DiscoveredDemoDomain.yaml
アーカイブの作成時に、このツールは、ドメイン構成によって参照されるすべてのバイナリ、スクリプトおよび必要なディレクトリの収集を試みます。
ORACLE_HOME
から参照されるバイナリは、モデルドリブン操作が適用されるターゲット・ドメインに存在想定されるため、収集されません。 これは、モデルがWebLogic Serverバージョンに依存しないようにするための鍵です。
Discover Domain Toolをオンライン・モードで実行するには、前述のようにいくつかのオプションがあります。 通常モードでは、WDTは、必要なディレクトリ(ドメイン・ホーム・ディレクトリなど)への読取りアクセス権を持つユーザーが管理サーバーと同じホストで実行して、アーカイブ・ファイルに移入するファイルを収集する必要があります。 管理ユーザー名と管理URLをコマンドラインに含めるだけです。 ツールにより、STDINにパスワードを入力するよう求められます。 プロンプトをバイパスするには、次の3つのオプションのいずれかを使用できます:
-admin_pass_env
で変数名を使用します。-admin_pass_file
を使用してファイル名を指定します。 管理サーバーからオンラインWLSTモードで実行する例:
$ weblogic-deploy/bin/discoverDomain.sh -oracle_home /u01/oracle -domain_home /u01/oracle/domains/DemoDomain -archive_file ./DiscoveredDemoDomain.zip -model_file ./DiscoveredDemoDomain.yaml -admin_user weblogic -admin_url t3://localhost:7001
リモート管理サーバーに対してツールを実行するには、他のモードのいずれかを使用できます: -skip_archive
、-remote
またはSSHモード。
-remote
を使用すると、ファイル・コレクションがスキップされ、ドメインに必要なが収集できなかったファイルに対してTODO
メッセージがツールによって生成されます。 必要なファイルを手動で収集し、Archive Helper Toolを使用してアーカイブ・ファイルを作成してモデルを完了できます。
リモート・ホストからオンラインWLSTモードで実行する例:
$ weblogic-deploy/bin/discoverDomain.sh -oracle_home /u01/oracle -remote -model_file ./DiscoveredDemoDomain.yaml -admin_user weblogic -admin_url t3://my.remote.host:7001
SSHモードの場合、ツールはSSHおよびSCPを使用してリモート・マシンからファイルを収集します。 リモート・ドメインへのSSHベース・アクセスの設定および使用の詳細は、「SSHサポート」およびVerify SSH Toolのページを参照してください。
デフォルトでは、Discover Domain Toolは、他のすべてのWDTツールと同様に、ドメインが純粋なWebLogic Serverドメインであるとみなされます。 WebLogic Serverドメインとは、weblogic-deploy/lib/typedefs/WLS.json
にあるWLS
typedefファイルによって定義されます。 その他のドメイン・タイプは、対応するtypedefファイルをweblogic-deploy/lib/typedefs/<type-name>.json
にインストールするだけでわかります。 たとえば、JRF
ドメイン・タイプは、weblogic-deploy/lib/typedefs/JRF.json
typedefファイルによって定義されます。
別のタイプのドメインを検出する場合は、-domain_type <type-name>
コマンドライン引数を追加するだけで済みます。たとえば、JRFドメインの場合は、コマンドライン引数に-domain_type JRF
を追加します。 ドメインtypedefは、一致するtypedefファイルのdiscover-filters
セクションに定義されたフィルタのセットを適用し、検出されたモデルから構成要素を除外するため、Discover Domain Toolにとって重要なロールを果たします。 この理由は、これらのドメイン・テンプレート定義リソースは、同じタイプの新しいドメインの作成時に自動的に作成されるため、通常、ユーザーが変更しないこれらのボイラープレート・リソース定義でモデルを乱雑にする必要はありません。 詳細は、「ドメイン・タイプ定義」のページを参照してください。
ドメイン・タイプ引数を使用する例:
$ weblogic-deploy\bin\discoverDomain.cmd -oracle_home c:\wls12213 -domain_home domains\DemoDomain -archive_file DiscoveredDemoDomain.zip -model_file DiscoveredDemoDomain.yaml -domain_type JRF
WDTには、ドメイン構成ファイルに格納されているパスワードを検出し、デフォルトのセキュリティ・プロバイダからデータを検出することで、ドメインをより完全に検出できる機能が導入されています。 この項ではこれらのオプションについて説明します。
4.1.0以降、Discover Domain Toolでは、コマンドラインに-discover_passwords
フラグを追加して、ドメイン構成ファイル(config.xmlや任意のJDBCSystemResource XMLファイルなど)からのパスワードの検出をサポートしています。 WDTがドメイン・ホーム・ディレクトリにアクセスできる場合(つまり、オンラインの-remote
引数では機能しない)、この機能はオフライン・モードとオンライン・モードの両方で機能します。 デフォルトでは、WDTはWDT暗号化を使用して、ツールに渡されるWDTパスフレーズを使用してモデル内のパスワードを暗号化しようとします。これには、次のいずれかのコマンドライン引数を使用する必要があります: -passphrase_env
、-passphrase_file
またはpassphrase_prompt
。 これにより、ユーザーはドメインからパスワードを検出し、ソース・ドメインに関連付けられていないテクノロジを使用してモデルにセキュアに格納できます。
WDTでは、パスワードを暗号化せずにモデルに格納できる構成設定がtool.properties
で提供されます。 Oracleでは、この機能を使用しないことを強くお薦めします。これは、パスワードがモデルのクリア・テキストに格納されるだけでなく、WDTログ・ファイルにパスワードが格納される可能性があるためです。
デフォルトでは、WebLogic Serverドメインは、ドメイン固有の情報を格納する4つのデフォルト・セキュリティ・プロバイダ・タイプで構成されます:
DefaultAuthenticator
- ユーザーとグループを格納します。XACMLAuthenticator
- 認可ポリシーを格納します。XACMLRoleMapper
- ロール定義およびロール定義をユーザーおよびグループにマッピングするためのルールを格納します。DefaultCredentialMapper
- 認可されたローカル・ユーザーがリモート・エンドポイントに対して認証できるように、リモート・エンドポイントの資格証明を格納します。WDTモデル・ファイルには、次のように、これらの各プロバイダのデータに対するモデル・セクションがすでにあります:
topology:/Security/User
- DefaultAuthenticator
に格納されているユーザーの作成に使用されます。topology:/Security/Group
- DefaultAuthenticator
に格納されたグループの作成に使用されます。domainInfo:/WLSPolicies
- XACMLAuthorizer
に格納された認可ポリシーの作成に使用されます。domainInfo:/WLSRoles
- XACMLRoleMapper
に格納されたWebLogicロールの作成に使用されます。domainInfo:/WLSUserPasswordCredentialMappings
- DefaultCredentialMapper
に格納された資格証明マッピングの作成に使用されます。4.2.0以降、Discover Domain Toolは-discover_security_provider_data <scope>
コマンドライン引数をサポートしています。 スコープは、次のいずれかの値またはこれらの値のリストです:
ALL
- 4つのプロバイダ・タイプをすべて検出DefaultAuthenticator
- ユーザーとグループを検出します。XACMLAuthorizer
- 認可ポリシーを検出します。XACMLRoleMapper
- ロール定義を検出します。DefaultCredentialMapper
- 資格証明マッピングを検出します。ALL
スコープは、4つのプロバイダ・タイプのそれぞれをリストするスコープ値(DefaultAuthenticator,XACMLAuthorizer,XACMLRoleMapper,DefaultCredentialMapper
など)とまったく同じです
検出では、ユーザー以外に使用されているWLSバージョンのデフォルトと一致するすべてのセキュリティ・データがフィルタで除外されます。これは、WDTでは、検出されたモデルから新しいドメインを作成する際に使用するユーザーのパスワードを検出する必要があるためです。
DefaultAuthenticator
またはDefaultCredentialMapper
を検出すると、検出されたパスワードはすべてWDT暗号化を使用してモデルに格納されます。したがって、WDT暗号化パスフレーズは、次のいずれかのコマンドライン引数を使用して指定する必要があります: -passphrase_env
、-passphrase_file
またはpassphrase_prompt
。 そうしないと、モデルのパスワード値が-- FIX ME --
に設定されます。
WDTでは、パスワードを暗号化せずにモデルに格納できる構成設定がtool.properties
で提供されます。 Oracleでは、この機能を使用しないことを強くお薦めします。これは、パスワードがモデルのクリア・テキストに格納されるだけでなく、WDTログ・ファイルにパスワードが格納される可能性があるためです。
XACMLAuthorizer
またはXACMLRoleMapper
を検出すると、WDTはXACMLドキュメントを分析して、XACMLの生成元のポリシーまたは式を判別しようとします。 これに成功すると、モデルにはそのポリシーまたはロールが含まれます。 そうでない場合は、XACMLドキュメントがアーカイブ・ファイルに追加され、かわりにそのドキュメントへの参照がモデルに追加されます。
ドメインの作成に使用されるWDTモデルでは、domainInfo
セクションのAdminUserName
属性およびAdminPassword
属性にデフォルトの管理者ユーザー名とパスワードを指定する必要があります。 これらの値は、ドメインをディスクに書き込む前に、ドメインの管理資格証明を移入するために使用されます。 デフォルトでは、Discover Domain Toolは、これらのモデル属性の値を--FIX ME--
に設定し、変数ファイルが使用されている場合は空の文字列に設定します。 -discover_security_provider_data
機能を使用する場合、これらのフィールドには実際の管理ユーザー名およびパスワードが移入されます。 デフォルトの管理ユーザー名またはパスワードを判断できないため、ツールではコマンド行でツールに渡される値が使用されます。 必要に応じて、WDT tool.propertyファイルのstore.discover.admin_credentials
プロパティを使用して、この機能を無効にできます
検出されるドメインに複数の管理者が存在する場合、Discover Domain Toolに提供される管理資格証明がモデルに追加される管理資格証明になります。 結果のモデルを使用して別のドメインを作成すると、そのユーザーが新しいドメインのデフォルト管理者になります。 そのため、これを考慮して、Discover Domain Toolの起動に使用する資格証明を選択することが重要です。
次の環境変数を設定できます。
JAVA_HOME
JDKのロケーション。 これは有効なJava 7以降のJDKである必要があります。 WLSDEPLOY_PROPERTIES
WLSTに渡されるシステム・プロパティ。Discover Domain Tool (およびWLSTを使用する他のツール)を実行する場合、ツールの実行に使用される実際のJDKは、JAVA_HOME
環境変数で定義されたものではなく、Oracle HomeにWebLogic Serverをインストールするために使用されるJDKになります。 ベスト・プラクティスは、WebLogic Serverのインストールに使用したものと同じJDKインストールを指すようにJAVA_HOME
を設定することです。
ツールの完全なコンソール出力(stdoutおよびstderrに出力される出力)およびログ・ファイルdiscoverDomain.log
(通常は<install home>/weblogic-deploy/logs
ディレクトリにあります)を指定してください。 可能な場合は、モデル、変数およびアーカイブ・ファイル、および環境の理解に役立つその他の情報、実行していること、および何が起こっているかを記入してください。
discoverDomain
のパラメータ表パラメータ | 定義 | デフォルト |
---|---|---|
-archive_file |
アーカイブ・ファイルへのパス。 | |
-admin_pass_env |
プロンプトで管理パスワードを入力する代替手段。 値は、WDTがパスワードの取得に使用する環境変数名です。 | |
-admin_pass_file |
プロンプトで管理パスワードを入力する代替手段。 値は、ツールがパスワードを取得するために読み取るパスワード文字列を含むファイルの名前です。 | |
-admin_url |
オンライン検出に使用される管理サーバーURL。 | |
-admin_user |
オンライン検出に使用される管理ユーザー。 | |
-discover_opss_wallet |
ターゲット・ドメインからOPSSウォレットを検出するかどうか。 | |
-discover_passwords |
ターゲット・ドメインからパスワードを検出するかどうか。 | |
-discover_security_provider_data |
ターゲット・ドメインからセキュリティ・プロバイダ・データを検出するかどうか。 | |
-domain_home |
オフライン操作にのみ使用されます。 既存のドメイン・ホームのロケーション。 | オンライン・モードの場合、サーバーの値。 |
-domain_type |
ドメインのタイプ(WLS 、JRF など)。 |
WLS |
-java_home |
Javaホーム・グローバル・トークンに置換されるドメイン値を検出するときに、JAVA_HOME 値をオーバーライドします。 |
|
-model_file |
モデル・ファイルへのパス。 | |
-opss_wallet_passphrase_env |
OPSSウォレットの検出時にプロンプトでOPSSウォレット・パスフレーズを入力するかわりに。 この値は、WDTがパスフレーズの取得に使用する環境変数名です。 | |
-opss_wallet_passphrase_file |
OPSSウォレットの検出時にプロンプトでOPSSウォレット・パスフレーズを入力するかわりに。 値は、パスフレーズを取得するためにWDTが読み取る文字列値を持つファイルの名前です。 | |
-oracle_home |
Oracle WebLogicインストールのホーム・ディレクトリ。 ORACLE_HOME 環境変数が設定されていない場合は必須です。 |
|
-output_dir |
-target には出力ディレクトリが必要です。 |
|
-passphrase_env |
パスワードの検出時にプロンプトで暗号化パスフレーズを入力する代替手段。 この値は、WDTがパスフレーズの取得に使用する環境変数名です。 | |
-passphrase_file |
パスワードの検出時にプロンプトで暗号化パスフレーズを入力する代替手段。 値は、パスフレーズを取得するためにWDTが読み取る文字列値を持つファイルの名前です。 | |
-passphrase_prompt |
WDTが暗号化パスフレーズを要求したり、標準入力から読み取ったりできるようにします。 | |
-skip_archive |
アーカイブ・ファイルは生成しないでください。 -archive_file オプションは無視されます。 |
|
-target |
ターゲット出力タイプ。 デフォルトはwko です。 ターゲット・タイプの詳細は、「ターゲット環境」を参照してください。 |
|
-remote |
リモート・マシンからドメインを更新します。 | |
-ssh_host |
リモート・ホストのDNS名またはIPアドレス。 | |
-ssh_port |
SSHデーモンが接続リクエストをリスニングしているリモート・ホスト上のTCPポート。 | 22 |
-ssh_user |
認証目的で使用するリモート・ホスト上のユーザー名。 | ツールを実行しているローカル・ユーザーと同じです。 |
-ssh_pass_env |
ユーザー名とパスワードによる認証時にリモート・ユーザーのパスワードを取得するために使用する環境変数名。 | |
-ssh_pass_file |
ユーザー名とパスワードによる認証時にリモート・ユーザーのパスワードのパスワード文字列を含むファイルのファイル名。 | |
-ssh_pass_prompt |
ユーザー名とパスワードによる認証時に、標準入力を介してリモート・ユーザーのパスワードの入力をユーザーに要求するようにツールに要求するフラグ。 | プロンプトを表示したり、標準入力から読み取ったりしないでください。 |
-ssh_private_key |
公開キーと秘密キーのペアで認証するときに使用するユーザーの秘密キーファイルのローカル・ファイル名。 | $HOME/.ssh/id_rsa |
-ssh_private_key_pass_env |
公開キーと秘密キーのペアで認証するときにユーザーの秘密キーのパスフレーズを取得するために使用する環境変数名。 | |
-ssh_private_key_pass_file |
公開キーと秘密キーのペアで認証するときに、ユーザーの秘密キーのパスフレーズ文字列を含むファイルのファイル名。 | |
-ssh_private_key_pass_prompt |
公開キーと秘密キーのペアで認証するときに、標準入力を介して秘密キーのパスフレーズを指定するようユーザーに要求するようにツールに要求するフラグ。 | プロンプトを表示したり、標準入力から読み取ったりしないでください。 |
-variable_file |
変数プロパティ・ファイルへのパス。 |