ansible 分隔角色中特定于分发的任务和变量
示例
我们可以轻松地将特定于分发的任务和变量分离到不同的专用.yml文件中。Ansible帮助我们通过{{ansible_distribution}}和自动识别目标主机分发{{ansible_distribution_version}},因此我们只需要相应地命名分发专用.yml文件即可。
对于UbuntuXenial,基本角色目录树如下所示:
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我们现在可以分别为UbuntuXenial定义任务和变量。