こんにちは! JQです。
前回は『OSS編~AnsibleでRoleを試してみる03~』と題して、AnsibleでRoleのVarsとHandlersを試してみました。
今回は『OSS編~AnsibleでRoleを試してみる04~』と題して、AnsibleでRoleのMetaを引き続き試してみたいと思います。
1.前準備
metaを設定する事でRoleの依存関係を設定出来ます。
先ずは依存関係となるPHPのRoleを作成します。
ディレクトリを作成します。
1 |
$ sudo mkdir -p roles/php/{files,templates,tasks,handlers,vars,meta} |
タスクを作成します。
1 2 3 4 5 6 7 8 |
$ sudo vim roles/php/tasks/main.yml --- - name: php install notify: - restart httpd yum: pkg={{ item }} state=present with_items: - php |
Handlerを設定します。
1 2 3 |
$ sudo vim roles/php/handlers/main.yml - name: restart httpd service: name=httpd state=restarted |
2.meta設定
次にmetaを設定します。
1 2 3 4 |
$ sudo vim roles/apache/meta/main.yml --- dependencies: - { role: php } |
それでは実行してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
$ sudo ansible-playbook site.yml [WARNING]: The version of gmp you have installed has a known issue regarding timing vulnerabilities when used with pycrypto. If possible, you should update it (ie. yum update gmp). PLAY [testservers] ************************************************************ GATHERING FACTS *************************************************************** ok: [127.0.0.1] TASK: [php | php install] ***************************************************** changed: [127.0.0.1] => (item=php) TASK: [apache | apache install] *********************************************** ok: [127.0.0.1] => (item=httpd) TASK: [apache | template conf] ************************************************ ok: [127.0.0.1] TASK: [apache | make dir] ***************************************************** ok: [127.0.0.1] TASK: [apache | index file] *************************************************** ok: [127.0.0.1] TASK: [apache | template var file] ******************************************** ok: [127.0.0.1] TASK: [apache | on httpd] ***************************************************** ok: [127.0.0.1] NOTIFIED: [php | restart httpd] *********************************************** changed: [127.0.0.1] PLAY RECAP ******************************************************************** 127.0.0.1 : ok=9 changed=2 unreachable=0 failed=0 |
Apacheのタスクが実行される前に依存関係に設定したPHPのRoleが実行されているのがわかります。
実際にインストールされたのが確認出来ます。
1 2 3 4 |
$ php -v PHP 5.3.29 (cli) (built: Aug 20 2014 16:41:34) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies |
いかがでしたでしょうか?
次回もお楽しみに!!!