Ansible include_tasksで各OSごとのタスクを呼び出す方法

環境
Ansible Playbook

構成

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']

 

Ansible

Posted by arkgame