在角色内分离特定于分发的任务和变量
我们可以轻松地将分发特定任务和变量分成不同的专用 .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 任务和变量。