CentOS 6
Sponsored Link

Ansible : Playbook を利用する#5
2015/04/22
 
タスクや Playbook は他からインクルードすることができます。
[1] タスクを他からインクルードする場合は、tasks 内に include: ~ と記述します。
[cent@dlp ~]$
vi playbook_sample.yml
# tasks ディレクトリ配下の included.yml をインクルード

- hosts: target_servers
  become: yes
  become_method: sudo
  tasks:
    - include: tasks/included.yml
      vars:
        general_packages: vim-enhanced,wget,unzip

[cent@dlp ~]$
mkdir tasks

[cent@dlp ~]$
vi tasks/included.yml
# タスクの部分のみの記述でOK

# item は general_packages の値を参照

- name: General packages are installed
  yum: name="{{ item }}" state=installed
  with_items:
    - "{{ general_packages }}"
  tags: General_Packages

[cent@dlp ~]$
ansible-playbook playbook_sample.yml --ask-become-pass

SUDO password:

PLAY [target_servers] *********************************************************

GATHERING FACTS ***************************************************************
ok: [10.0.0.52]
ok: [10.0.0.51]

TASK: [General packages are installed] ****************************************
changed: [10.0.0.52] => (item=vim-enhanced,wget,unzip)
changed: [10.0.0.51] => (item=vim-enhanced,wget,unzip)

PLAY RECAP ********************************************************************
10.0.0.51                  : ok=2    changed=1    unreachable=0    failed=0
10.0.0.52                  : ok=2    changed=1    unreachable=0    failed=0
[2] Playbook を他からインクルードする場合の例です。タスクのインクルードとは記述する階層が異なります。
以下は、[1]の例に加えて、httpd の起動状態を保つ Playbook をインクルードする例です。
[cent@dlp ~]$
vi playbook_sample.yml
- hosts: target_servers
  become: yes
  become_method: sudo
  tasks:
    - include: tasks/included.yml
      vars:
        general_packages: vim-enhanced,wget,unzip
# 他の Playbook をインクルード

- include: httpd.yml

[cent@dlp ~]$
vi httpd.yml
# 通常の Playbook と同様の書式で記述する

- hosts: target_servers
  become: yes
  become_method: sudo
  tasks:
  - name: httpd is installed
    yum: name=httpd state=installed
  - name: httpd is running and enabled
    service: name=httpd state=started enabled=yes

[cent@dlp ~]$
ansible-playbook playbook_sample.yml --ask-become-pass

SUDO password:

PLAY [target_servers] *********************************************************

GATHERING FACTS ***************************************************************
ok: [10.0.0.52]
ok: [10.0.0.51]

TASK: [General packages are installed] ****************************************
changed: [10.0.0.51] => (item=vim-enhanced,wget,unzip)
changed: [10.0.0.52] => (item=vim-enhanced,wget,unzip)

PLAY [target_servers] *********************************************************

GATHERING FACTS ***************************************************************
ok: [10.0.0.52]
ok: [10.0.0.51]

TASK: [httpd is installed] ****************************************************
ok: [10.0.0.51]
ok: [10.0.0.52]

TASK: [httpd is running and enabled] ******************************************
ok: [10.0.0.51]
ok: [10.0.0.52]

PLAY RECAP ********************************************************************
10.0.0.51                  : ok=5    changed=1    unreachable=0    failed=0
10.0.0.52                  : ok=5    changed=1    unreachable=0    failed=0
 
Tweet