Ansible/jinja2 YAML 文件中的“:&”是什么意思?

Flo*_*ver 2 ansible

Ansible/Jinja2 YAML 文件中的“:&”是什么意思?

例如,在这一行中:

hosts: test-instances:&{{ target_host | default('None') }}
Run Code Online (Sandbox Code Playgroud)

tec*_*raf 6

它是 Ansible 中两个主机组的交集(它不是 Jinja2 语法,除了声明之外不使用hosts)。

在您的示例中,播放将仅在target_host变量中指定的主机(或主机组)上运行,只要它列在test-instances清单组中即可。

如果target_host未指定或未target_host在 中列出test-instances,则播放将被跳过(假设没有名为 的主机None)。

根据使用模式

您还可以指定两个组的交集。这意味着主机必须位于组 Webservers 中,并且主机也必须位于组 staging 中:

webservers:&staging
Run Code Online (Sandbox Code Playgroud)