在角色內分離特定於分發的任務和變數
我們可以輕鬆地將分發特定任務和變數分成不同的專用 .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 任務和變數。