機械翻訳について

WDTモデル・ファイルの操作

目次

このドキュメントでは、オペレータでのWebLogic Deploy Tooling (WDT)モデル・ファイルの操作について説明します。 詳細は、WebLogic Deploy Toolingのドキュメントを参照してください。

WDT Discover Domain Toolは、既存のドメイン・ホームからWDTモデル・ファイルを生成する場合に特に役立ちます。

マクロを含むサンプル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によって実行時に解決されるマクロです。 シークレットおよび環境変数へのモデル・ファイル・マクロ参照の詳細は、「モデル・ファイル・マクロ」を参照してください。

WDTモデル・ファイルに関する重要なノート

  • モデル・ファイル・マクロの使用:

    • モデル・マクロを使用して、モデル・ファイルから任意のシークレットを参照できます。 これは、データベース・ユーザー名、パスワード、URLなどの可変値を処理する場合にお薦めします。 「モデル・ファイルでのシークレットの使用」を参照してください。

      • モデル内のすべてのパスワード・フィールドでシークレット・マクロを使用する必要があります。 パスワードはログまたはデバッグに表示される可能性があるため、プロパティ・ファイルまたはモデル・ファイルに直接含めないでください。

      • WDT 「モデルの暗号化ツール」で暗号化されたモデル・ファイルはサポートされていません。 かわりにシークレットを使用してください。

    • モデル・マクロを使用して、モデル・ファイルから任意の環境変数を参照できます。 これは、ドメインYAMLファイルでenvスタンザを使用して定義できるプレーン・テキストの可変値を処理する場合に役立ち、組込みのDOMAIN_UID環境変数にアクセスする場合にも役立ちます。 「モデル・ファイルでの環境変数の使用」を参照してください。

    • ほとんどのモデルでは、モデル変数ファイル(プロパティ・ファイルとも呼ばれる)の使用を最小化または排除し、かわりにシークレットまたは環境変数を使用すると便利です。

  • WDTがモデル・ファイルのロードに使用する順序を制御できます。「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拡張機能の直前に配置する必要があります。
    • 複数の.##.を含むファイル名の優先順位は未定義です。
    • 数値には、ゼロ以上の任意の整数を指定できます。
  • .##.を含まないファイル名は、他のファイルの「前に」、可能なかぎり.##.が暗黙的に最小であるかのようにソートされます
  • 2つのファイルが同じ番号を共有している場合、ロード順序はタイブレーカとしてアルファベット順に決定されます。

すべてのモデルがソートされた後、オペレータはカンマ区切りリストを作成し、これが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-secret1my-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に基づいて指定したシークレットを参照する場合に便利です。

たとえば、domainUIDdomain1の場合、マクロ@@SECRET:@@ENV:DOMAIN_UID@@-super-double-secret:mykey@@は、シークレットdomain1-super-double-secretmykeyに格納されている値に解決されます。