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

環境
Ansible Playbook

構成

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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ではパッケージをインストールします。

定義コード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# 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']

 

Ansible

Posted by arkgame