Простими словами, це поняття нагадує базовий та похідний клас.
У шаблоні базового класу ви згадуєте всі загальні деталі за допомогою "&", а це означає, що його можна використовувати для розширення іншого розділу ямл, який потребує цих полів. Тепер, коли ви створюєте інший розділ, який є набором значень конфігурацій цієї структури типу 'базовий клас', ви використовуєте '*' разом із якорем базового класу (тобто тим, що розпочався з '&'). Ви використовуєте "<<:" як поняття 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
Але, якщо ви не хочете переосмислювати розширені поля, ви можете пропустити '<<:'