OSS編~AnsibleでRoleを試してみる04~

こんにちは! 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$ sudo vim roles/php/tasks/main.yml2---3- name: php install4  notify:5    - restart httpd6  yum: pkg={{ item }} state=present7  with_items:8    - php

Handlerを設定します。

1$ sudo vim roles/php/handlers/main.yml2- name: restart httpd3  service: name=httpd state=restarted

2.meta設定

次にmetaを設定します。

1$ sudo vim roles/apache/meta/main.yml2---3dependencies:4  - { role: php }

それでは実行してみます。

1$ sudo ansible-playbook site.yml2 [WARNING]: The version of gmp you have installed has a known issue regarding3timing vulnerabilities when used with pycrypto. If possible, you should update4it (ie. yum update gmp).56PLAY [testservers] ************************************************************78GATHERING FACTS ***************************************************************9ok: [127.0.0.1]1011TASK: [php | php install] *****************************************************12changed: [127.0.0.1] => (item=php)1314TASK: [apache | apache install] ***********************************************15ok: [127.0.0.1] => (item=httpd)1617TASK: [apache | template conf] ************************************************18ok: [127.0.0.1]1920TASK: [apache | make dir] *****************************************************21ok: [127.0.0.1]2223TASK: [apache | index file] ***************************************************24ok: [127.0.0.1]2526TASK: [apache | template var file] ********************************************27ok: [127.0.0.1]2829TASK: [apache | on httpd] *****************************************************30ok: [127.0.0.1]3132NOTIFIED: [php | restart httpd] ***********************************************33changed: [127.0.0.1]3435PLAY RECAP ********************************************************************36127.0.0.1                  : ok=9    changed=2    unreachable=0    failed=0

Apacheのタスクが実行される前に依存関係に設定したPHPのRoleが実行されているのがわかります。

実際にインストールされたのが確認出来ます。

1$ php -v2PHP 5.3.29 (cli) (built: Aug 20 2014 16:41:34)3Copyright (c) 1997-2014 The PHP Group4Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies

いかがでしたでしょうか?

次回もお楽しみに!!!

この記事を書いた人

aws-recipe-user