Ansible : Playbook を利用する#12015/07/15 |
Ansible Playbook の基本的な利用方法です。
Playbook は冪等性 (べきとうせい) を確保するための処理をまとめたもので、YAML 形式で記述します。
|
|
[1] | 例として、あるファイルが常に同じ属性で存在するシンプルな Playbook を作成します。 |
[cent@dlp ~]$
vi playbook_sample.yml # 対象ホスト名 または グループ名 - hosts: target_servers # タスクの定義 tasks: # 任意のタスク名 - name: Test Task # file モジュールを利用してファイルの状態を記述 file: path=/home/cent/test.conf state=touch owner=cent group=cent mode=0600 # Playbook 実行 [cent@dlp ~]$ ansible-playbook playbook_sample.yml PLAY [target_servers] ********************************************************* GATHERING FACTS *************************************************************** ok: [10.0.0.52] ok: [10.0.0.51] TASK: [Test Task] ************************************************************* changed: [10.0.0.51] changed: [10.0.0.52] 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 command -a "ls -l /home/cent" 10.0.0.51 | success | rc=0 >> total 0 -rw------- 1 cent cent 0 Apr 21 15:35 test.conf 10.0.0.52 | success | rc=0 >> total 0 -rw------- 1 cent cent 0 Apr 21 15:35 test.conf |
[2] | 例として、Apache httpd がインストールされ、起動した状態とする Playbook です。 |
[cent@dlp ~]$
vi playbook_sample.yml
- hosts: target_servers
# 他ユーザー権限を利用する(デフォルト:root) 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.51] ok: [10.0.0.52] TASK: [httpd is installed] **************************************************** changed: [10.0.0.51] changed: [10.0.0.52] TASK: [httpd is running and enabled] ****************************************** changed: [10.0.0.51] changed: [10.0.0.52] PLAY RECAP ******************************************************************** 10.0.0.51 : ok=3 changed=2 unreachable=0 failed=0 10.0.0.52 : ok=3 changed=2 unreachable=0 failed=0 # 確認 [cent@dlp ~]$ ansible target_servers -m shell -a "/bin/systemctl status httpd | head -3" -b --ask-become-pass SUDO password: 10.0.0.52 | success | rc=0 >> httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled) Active: active (running) since Thu 2015-07-15 20:42:00 JST; 2min 2s ago 10.0.0.51 | success | rc=0 >> httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled) Active: active (running) since Thu 2015-07-15 20:42:00 JST; 2min 2s ago |
Sponsored Link |