在角色內分離特定於分發的任務和變數

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