簡単な言葉で言えば、この概念はベースクラスと派生クラスに似ています。
基本クラスのテンプレートでは、すべての共通の詳細を '&'と記述します。つまり、これらのフィールドが必要な他のyamlセクションを展開するために使用できます。 この '基本クラス'型構造の設定値のスーパーセットである別のセクションを作成すると、基本クラスアンカー( '&'で始まる)とともに '*'が使用されます。実際に '基本クラス'セクションを配置するには、yamlという概念として '< <:'を使用します。これは後でオーバーライドできます。
vsm:
stub_nsx_mgr: &MGR_CTRL_STUB
username: ADMIN
password: $DEFAULT_PASSWORD
deployment: ovf
build: $PR_BUILD
vmnics:
- network: $MANAGEMENT_NETWORK_0
vc: vc_0
ovf_options:
- --diskMode=$DISKMODE
- --deploymentOption=$DEPLOYMENT_OPTION
$MGR_0:
<<: *MGR_CTRL_STUB
ovf_path_regex: 'appliance.*\.ovf'
ovf_options:
- --diskMode=$DISKMODE
- --deploymentOption=$DEPLOYMENT_OPTION
$CTRL_0:
<<: *MGR_CTRL_STUB
ovf_options:
- --diskMode=$DISKMODE
- --allowExtraConfig
$CTRL_1:
*MGR_CTRL_STUB
しかし、あなたが拡張フィールドを上書きしたくない場合、あなたはスキップすることができます「< <:」を
YMLファイルで使用すると、別のに何度も何度もデータベース接続パラメータを書き換える必要はありません接続パラメータが類似している場合は、環境ここでは上記の場合、環境キュウリはテスト環境と同様に正確な接続パラメータを使用します。また、本番環境では、データベース名以外の開発で接続パラメータを使用します。これはDRY(自分自身を繰り返さない)コードのようなものです。私を修正してください。 – kxhitiz
**参照:** http://yaml.org/type/merge.html – dreftymac