Ansible/Jinja2 YAML 文件中的“:&”是什么意思?
例如,在这一行中:
hosts: test-instances:&{{ target_host | default('None') }}
Run Code Online (Sandbox Code Playgroud)
它是 Ansible 中两个主机组的交集(它不是 Jinja2 语法,除了声明之外不使用hosts
)。
在您的示例中,播放将仅在target_host
变量中指定的主机(或主机组)上运行,只要它列在test-instances
清单组中即可。
如果target_host
未指定或未target_host
在 中列出test-instances
,则播放将被跳过(假设没有名为 的主机None
)。
根据使用模式:
您还可以指定两个组的交集。这意味着主机必须位于组 Webservers 中,并且主机也必须位于组 staging 中:
Run Code Online (Sandbox Code Playgroud)webservers:&staging