Ansible include_tasksで各OSごとのタスクを呼び出す方法
環境
Ansible Playbook
構成
roles/[role名]
└── tasks
├── CentOS.yml
├── Ubuntu.yml
└── main.yml
roles/[role名]
└── tasks
├── CentOS.yml
├── Ubuntu.yml
└── main.yml
roles/[role名] └── tasks ├── CentOS.yml ├── Ubuntu.yml └── main.yml
使用例
CentOSではソースからビルド、Ubuntuではパッケージをインストールします。
定義コード
# roles/[role名]/tasks/CentOS.yml
xxxをビルドしてインストールする
# roles/[role名]/tasks/Ubuntu.yml
xxxをパッケージからインストールする
# roles/[role名]/tasks/main.yml
- name: xxxAのインストール (CentOS)
include_tasks: CentOS.yml
when: ansible_distribution in ['RedHat','CentOS']
- name: xxxのインストール (Ubuntu)
include_tasks: Ubuntu.yml
when: ansible_distribution in ['Ubuntu']
# roles/[role名]/tasks/CentOS.yml
xxxをビルドしてインストールする
# roles/[role名]/tasks/Ubuntu.yml
xxxをパッケージからインストールする
# roles/[role名]/tasks/main.yml
- name: xxxAのインストール (CentOS)
include_tasks: CentOS.yml
when: ansible_distribution in ['RedHat','CentOS']
- name: xxxのインストール (Ubuntu)
include_tasks: Ubuntu.yml
when: ansible_distribution in ['Ubuntu']
# roles/[role名]/tasks/CentOS.yml xxxをビルドしてインストールする # roles/[role名]/tasks/Ubuntu.yml xxxをパッケージからインストールする # roles/[role名]/tasks/main.yml - name: xxxAのインストール (CentOS) include_tasks: CentOS.yml when: ansible_distribution in ['RedHat','CentOS'] - name: xxxのインストール (Ubuntu) include_tasks: Ubuntu.yml when: ansible_distribution in ['Ubuntu']