在角色内分离特定于分发的任务和变量

我们可以轻松地将分发特定任务和变量分成不同的专用 .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.ymlvars/Ubuntu16.04.yml 我们现在可以分别定义为 Ubuntu Xenial 任务和变量。