このドキュメントでは、オペレータでのWebLogic Deploy Tooling (WDT)モデル・ファイルの操作について説明します。 詳細は、WebLogic Deploy Toolingのドキュメントを参照してください。
WDT Discover Domain Toolは、既存のドメイン・ホームからWDTモデル・ファイルを生成する場合に特に役立ちます。
次に、ドメインを記述するWDTモデルYAMLファイルの例を示します。 詳細については、「Metadataモデル」を参照してください。
domainInfo:
AdminUserName: '@@SECRET:__weblogic-credentials__:username@@'
AdminPassword: '@@SECRET:__weblogic-credentials__:password@@'
RCUDbInfo:
rcu_prefix: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_prefix@@'
rcu_schema_password: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_schema_password@@'
rcu_db_conn_string: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_db_conn_string@@'
topology:
Name: '@@ENV:DOMAIN_UID@@'
AdminServerName: "admin-server"
Cluster:
"cluster-1":
...
resources:
...
appDeployments:
Application:
myear:
SourcePath: wlsdeploy/applications/sample_app.ear
ModuleType: ear
Target: 'cluster-1'
このサンプル・モデル・ファイルには4つのセクションがあります:
セクション | 用途 |
---|---|
domainInfo |
ドメイン・レベルの情報について説明します。 |
topology |
ドメインのトポロジについて説明します。 |
resources |
ドメインで使用されるJ2EEリソースについて説明します。 |
appDeployments |
ドメインで使用されるアプリケーションおよびライブラリについて説明します。 |
この値パターンに注意してください: @@...@@
。 これらは、オペレータ環境のWDTによって実行時に解決されるマクロです。 シークレットおよび環境変数へのモデル・ファイル・マクロ参照の詳細は、「モデル・ファイル・マクロ」を参照してください。
モデル・ファイル・マクロの使用:
モデル・マクロを使用して、モデル・ファイルから任意のシークレットを参照できます。 これは、データベース・ユーザー名、パスワード、URLなどの可変値を処理する場合にお薦めします。 「モデル・ファイルでのシークレットの使用」を参照してください。
モデル内のすべてのパスワード・フィールドでシークレット・マクロを使用する必要があります。 パスワードはログまたはデバッグに表示される可能性があるため、プロパティ・ファイルまたはモデル・ファイルに直接含めないでください。
WDT 「モデルの暗号化ツール」で暗号化されたモデル・ファイルはサポートされていません。 かわりにシークレットを使用してください。
モデル・マクロを使用して、モデル・ファイルから任意の環境変数を参照できます。 これは、ドメインYAMLファイルでenv
スタンザを使用して定義できるプレーン・テキストの可変値を処理する場合に役立ち、組込みのDOMAIN_UID
環境変数にアクセスする場合にも役立ちます。 「モデル・ファイルでの環境変数の使用」を参照してください。
ほとんどのモデルでは、モデル変数ファイル(プロパティ・ファイルとも呼ばれる)の使用を最小化または排除し、かわりにシークレットまたは環境変数を使用すると便利です。
WDTがモデル・ファイルのロードに使用する順序を制御できます。「WDTはロケーションとロード順序をモデル化します」を参照してください。
モデル・ファイルのロード順序を制御する必要がある場合は、この項を参照してください。 最後にロードされたモデルの優先順位が最も高いため、複数のモデル・ファイルが同じ構成を参照する場合は順序が重要です。
ドメイン・ホームの作成中に、モデルおよびプロパティ・ファイルが最初にモデル・イメージからロードされ、次にオプションのWDT ConfigMapからロードされます。
ドメイン・デプロイメント・モデル | モデル・イメージ・ソース指定 | オプションのWDT ConfigMap指定 |
---|---|---|
Model in Image | domain.spec.image またはdomain.spec.configuration.model.auxiliaryImages |
domain.spec.configuration.model.configMap |
Domain on PV | domain.spec.configuration.initializeDomainOnPV.domain.domainCreationImages |
domain.spec.configuration.initializeDomainOnPV.domain.domainCreationConfigMap |
これらの各ロケーション内のロード順序は、最初にfilename.##.yaml
およびfilename.##.properties
という規則を使用して決定されます。ここで、##
は、数値でソートする際の順序を指定する数字です。 追加詳細:
.##.
の埋込みはオプションです。
properties
またはyaml
拡張機能の直前に配置する必要があります。.##.
を含むファイル名の優先順位は未定義です。.##.
を含まないファイル名は、他のファイルの「前に」、可能なかぎり.##.
が暗黙的に最小であるかのようにソートされますすべてのモデルがソートされた後、オペレータはカンマ区切りリストを作成し、これがWDT create domain
コマンドに渡されます:
/u01/wdt/models/model1.yaml,/u01/wdt/models/model2.yaml,/weblogic-operator/wdt-config-map/modela.yaml,/weblogic-operator/wdt-config-maap/mdoelb.yaml
内部的には、WDT create
コマンドは、最初にすべてのモデル・ファイルを単一のモデル・ファイルにマージし、すべてのマクロを解決してから、モデルを処理してドメインを作成します。 最終的なマージ・モデルは、構文的にも意味的にも有効である必要があります。 デプロイメント・モデルがModel in Imageの場合、マージされたモデルは内部的に保存されます。
ノート: イメージ・ソースのWDTモデル・ファイルが複数のイメージを組み合わせて提供されている場合、ロード順序が決定される前に、このディレクトリ内のファイルがオーダーのマージに従って移入されます。
たとえば、モデル・ホーム・ディレクトリに次のファイルがある場合:
jdbc.20.yaml
main-model.10.yaml
my-model.10.yaml
y.yaml
また、ConfigMapに次のファイルがあります:
jdbc-dev-urlprops.10.yaml
z.yaml
結合されたモデル・ファイル・リストは、次のようにWebLogic Deploy Toolingに渡されます:
y.yaml,main-model.10.yaml,my-model.10.yaml,jdbc.20.yaml,z.yaml,jdbc-dev-urlprops.10.yaml
プロパティ・ファイル(.properties
で終わる)は、同じソート・アルゴリズムを使用しますが、WebLogic Deploy Toolingに渡す前に1つのファイルにまとめて追加されます。
WDTモデルには、シークレットまたは環境変数を参照するマクロを含めることができます。
WDTモデルの@@SECRET
マクロを使用して、Kubernetes Secretに格納されているWebLogic管理者のusername
およびpassword
キーを参照し、オプションで追加のシークレットを参照できます。 次に、これらのシークレットにアクセスするためのマクロ・パターンを示します:
ドメイン・リソース属性 | 対応するWDTモデル@@SECRET マクロ |
---|---|
webLogicCredentialsSecret |
@@SECRET:__weblogic-credentials__:username@@ および@@SECRET:__weblogic-credentials__:password@@ |
configuration.secrets |
@@SECRET:mysecret:mykey@@ |
たとえば、@@SECRET:__weblogic-credentials__:username@@
を使用してWebLogic資格証明ユーザー名を参照し、@@SECRET:mysecret:mykey@@
を使用してキーmykey
でカスタム・シークレットmysecret
を参照できます。
@@SECRET
マクロによって参照されるシークレットは、ドメインと同じネームスペースにデプロイし、weblogicCredentialsSecret
およびconfiguration.secrets
フィールドを使用してドメインYAMLファイルで参照する必要があります。
次に、webLogicCredentialsSecret
および2つのカスタム・シークレットmy-custom-secret1
とmy-custom-secret2
を設定するドメインYAMLファイルのサンプル・スニペットを示します。
spec:
webLogicCredentialsSecret:
name: my-weblogic-credentials-secret
configuration:
secrets: [ my-custom-secret1,my-custom-secret2 ]
...
モデル・ファイルでオペレータ環境変数を参照できます。 これには、domain.spec.serverPod.env
またはdomain.spec.adminServer.serverPod.env
を使用してドメインYAMLファイルに自分を定義すること、または組込みのDOMAIN_UID
環境変数が含まれます。
たとえば、@@ENV:DOMAIN_UID@@
マクロは、現在のドメインのドメインUIDに解決されます。
シークレット・マクロに環境変数マクロを埋め込むことができます。 これは、ドメインのdomainUID
に基づいて指定したシークレットを参照する場合に便利です。
たとえば、domainUID
がdomain1
の場合、マクロ@@SECRET:@@ENV:DOMAIN_UID@@-super-double-secret:mykey@@
は、シークレットdomain1-super-double-secret
のmykey
に格納されている値に解決されます。