Ansible : Playbook を利用する#22015/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 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", ..... ..... # 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 }}" 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 |
Sponsored Link |