機械翻訳について

モデル・ファイル

目次

導入

このドキュメントでは、基本的なModel in Imageモデル・ファイルの構文、ネーミングおよびマクロについて説明します。 詳細は、WebLogic Deploy Toolingのドキュメントを参照してください。

WDT 「ドメインの検出ツール」は、既存のドメイン・ホームからモデル・ファイルを生成する場合に特に便利です。

サンプル・モデル・ファイル

WebLogic Server管理サーバーおよび動的クラスタを定義するモデルYAMLファイルの例を次に示します。

domainInfo:
  AdminUserName: '@@SECRET:__weblogic-credentials__:username@@'
  AdminPassword: '@@SECRET:__weblogic-credentials__:password@@'
  ServerStartMode: 'prod'

topology:
  Name: '@@ENV:DOMAIN_UID@@'
  AdminServerName: "admin-server"
  Cluster:
    "cluster-1":
      DynamicServers:
        ServerTemplate:  "cluster-1-template"
        ServerNamePrefix: "managed-server"
        DynamicClusterSize: 5
        MaxDynamicClusterSize: 5
        CalculatedListenPorts: false
  Server:
    "admin-server":
      ListenPort: 7001
  ServerTemplate:
    "cluster-1-template":
      Cluster: "cluster-1"
      ListenPort: 8001

このサンプル・モデル・ファイルは次のとおりです:

  • Model in Imageで必要なWebLogic資格証明スタンザが含まれます。
  • 事前定義済の環境変数DOMAIN_UIDからドメイン名を導出しますが、これは必須ではありません。

シークレットおよび環境変数へのモデル・ファイル・マクロ参照の詳細は、「モデル・ファイル・マクロ」を参照してください。

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

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

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

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

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

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

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

  • モデルには、WebLogic管理資格証明を参照するdomainInfoスタンザが含まれる必要があります。 @@SECRETマクロを予約済シークレット名__weblogic-credentials__とともに使用して、この目的でドメインYAMLファイルのWebLogic資格証明シークレットを参照できます。 例えば:

    domainInfo:
      AdminUserName: '@@SECRET:__weblogic-credentials__:username@@'
      AdminPassword: '@@SECRET:__weblogic-credentials__:password@@'
    
  • JRFドメイン・タイプ・モデルには、domainInfo.RCUDbInfoスタンザが含まれている必要があります。 ノート: Model in ImageドメインでのJRFサポートは、オペレータ・バージョン4.1.0では非推奨です。かわりに、Domain on PVドメイン・ホーム・ソース・タイプを使用してください。

  • WDTがモデル・ファイルのロードに使用する順序を制御できます。「モデル・ファイルの命名およびロード順序」を参照してください。

モデル・ファイルの命名およびロード順序

モデル・ファイルのロード順序を制御する必要がある場合は、この項を参照してください。 最後にロードされたモデルの優先順位が最も高いため、複数のモデル・ファイルが同じ構成を参照する場合は順序が重要です。

ドメイン・ホームの作成中に、モデル・ファイルおよびプロパティ・ファイルは、最初にポッド内のconfiguration.models.modelHomeディレクトリからロードされます。 modelHomeファイルがすべてロードされると、ドメイン・ホームの作成によって、「WDTモデルConfigMap(オプション)」で説明されているオプションのWDT ConfigMapからファイルがロードされます。 modelHomeファイルとConfigMapファイルの両方が同じ名前の場合、両方のファイルがロードされます。

これらの各ロケーション内のロード順序は、最初にfilename.##.yamlおよびfilename.##.propertiesという規則を使用して決定されます。ここで、##は、数値でソートする際の順序を指定する数字です。 追加詳細:

  • ファイル名への.##.の埋込みはオプションです。
    • 存在する場合は、アルファベット順の優先順位より優先させるために、propertiesまたはyaml拡張機能の直前に配置する必要があります。
    • 複数の.##.を含むファイル名の優先順位は未定義です。
    • 数値には、ゼロ以上の任意の整数を指定できます。
  • .##.を含まないファイル名は、他のファイルの「前に」、可能なかぎり.##.が暗黙的に最小であるかのようにソートされます
  • 2つのファイルが同じ番号を共有している場合、ロード順序はタイブレーカとしてアルファベット順に決定されます。

ノートconfiguration.models.modelHomeファイルが複数の補助イメージを組み合わせて指定されている場合、ロード順序が決定される前に、このディレクトリ内のファイルが補助イメージのマージ順序に従って移入されます。

たとえば、モデル・ホーム・ディレクトリに次のファイルがある場合:

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に格納されている値に解決されます。