如果条件为真 运行 一些包含 yml 文件

If condition is true run some include yml files

我有一些 ubuntucentos 的剧本,我想用 main.yml 来检查 when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'、运行 剧本(一些 ans many :-)).

当我运行只是:

-include: centos-xxx.yml
-include: centos-xaa.yml
-include: centos-xsss.yml

它将 运行 所有

基本上,如果满足条件,我希望剧本 运行。

我没有找到任何说明如何 运行 包含的文档:如果可能,我尽量不为每个包含创建任务。

您可以使用 when conditional 来包含文件。事实上,这有点常见。

- include: centos-xxx.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'
- include: debian-xxx.yml
  when: ansible_distribution == 'Debian'

根据您的评论 - 如果您想 运行 按顺序排列它们,您有两种选择。这是直截了当的:

- include: centos-a.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'
- include: centos-b.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'
- include: centos-c.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'
- include: centos-d.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'

或者,您可以这样做:

- include: centos.yml
  when: ansible_os_family == 'RedHat' or ansible_distribution == 'Centos'

和内部 centos.yml:

- include: centos-a.yml
- include: centos-b.yml
- include: centos-c.yml
- include: centos-d.yml