CentOS 6
Sponsored Link

Ansible : Playbook を利用する#2
2015/04/22
 
Ansible Playbook では、変数も利用できます。
[1] 変数の利用例です。with_items に値を格納し、{{ item }} で参照しています。
[cent@dlp ~]$
vi playbook_sample.yml
- hosts: target_servers
  become: yes
  become_method: sudo
  tasks:
  - name: General packages are installed
    yum: name={{ item }} state=installed
    with_items:
      - vim-enhanced
      - wget
      - unzip
    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

# 確認

[cent@dlp ~]$
ansible target_servers -m shell -a "rpm -qa | egrep 'vim-enhanced|wget|unzip'" --ask-become-pass

SUDO password:
10.0.0.52 | success | rc=0 >>
wget-1.12-5.el6_6.1.x86_64
vim-enhanced-7.2.411-1.8.el6.x86_64
unzip-6.0-2.el6_6.x86_64

10.0.0.51 | success | rc=0 >>
wget-1.12-5.el6_6.1.x86_64
vim-enhanced-7.2.411-1.8.el6.x86_64
unzip-6.0-2.el6_6.x86_64
[2] Playbook を実行すると、最初に GATHERING FACTS タスクが必ず実行されます。 これは対象ホストの情報を収集している処理で、ここで収集された情報は変数に格納されているため、参照して利用することができます。 なお、GATHERING FACTS で収集している情報と同じ情報は setup モジュールで確認できます。
# GATHERING FACTS の情報は setup モジュールで確認可能

[cent@dlp ~]$
ansible 10.0.0.51 -m setup

10.0.0.51 | success >> {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "10.0.0.51"
        ],
        "ansible_all_ipv6_addresses": [
            "fe80::216:36ff:fe29:7f1c"
        ],
        "ansible_architecture": "x86_64",
        "ansible_bios_date": "01/01/2007",
        "ansible_bios_version": "0.5.1",
.....
.....

# GATHERING FACTS 情報の参照例

[cent@dlp ~]$
vi playbook_sample.yml
# ansible_distribution, ansible_distribution_version を参照

- hosts: target_servers
  tasks:
  - name: Refer to Gathering Facts
    command: echo "{{ ansible_distribution }} {{ ansible_distribution_version }}"
    register: dist
  - debug: msg="{{ dist.stdout }}"

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


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

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

TASK: [Refer to Gathering Facts] **********************************************
changed: [10.0.0.52]
changed: [10.0.0.51]

TASK: [debug msg="{{ dist.stdout }}"] *****************************************
ok: [10.0.0.51] => {
    "msg": "CentOS 6.6"
}
ok: [10.0.0.52] => {
    "msg": "CentOS 6.6"
}

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