ansible 分隔角色中特定于分发的任务和变量

示例

我们可以轻松地将特定于分发的任务和变量分离到不同的专用.yml文件中。Ansible帮助我们通过{{ ansible_distribution }}和自动识别目标主机分发{{ ansible_distribution_version }},因此我们只需要相应地命名分发专用.yml文件即可。

对于Ubuntu Xenial,基本角色目录树如下所示:

role
├── tasks
│   ├── main.yml
│   └── Ubuntu16.04.yml
└── vars
    └── Ubuntu16.04.yml

tasks/main.yml现在,我们可以自动在目标主机分发中包含适当的变量和任务。

任务/ main.yml

---

- name: include distribution specific vars
  include_vars: "{{ ansible_distribution }}{{ ansible_distribution_version }}.yml"

- name: include distribution specific install
  include: "{{ ansible_distribution }}{{ ansible_distribution_version }}.yml"

在内部tasks/Ubuntu16.06.yml,vars/Ubuntu16.04.yml我们现在可以分别为Ubuntu Xenial定义任务和变量。