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

こんにちは! JQです。

前回は『 OSS編~AnsibleでRoleを試してみる01~ 』と題して、AnsibleでRoleのTaskを試してみました。

今回は『OSS編~AnsibleでRoleを試してみる02~』と題して、AnsibleでRoleのTemplatesとFileを試してみたいと思います。

これまでの工程は こちら をご参照下さい。

6.Files設定

前回では簡単なタスクを実行しました。

次はFilesを試してみたいと思います。

簡単なファイルをフォルダに作成します。

1$ sudo vim roles/apache/files/index.html2test

taskにcopyを追加してみます。

1$ sudo vim roles/apache/tasks/main.yml2---3- name: apache install4  yum: pkg={{ item }} state=present5  with_items:6    - httpd78- name: index file9  copy: src=index.html dest=/var/www/html/index.html owner=root group=root mode=06441011- name: on httpd12  service: name=httpd enabled=yes state=started

実施してみます。

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: [apache | apache install] ***********************************************12ok: [127.0.0.1] => (item=httpd)1314TASK: [apache | index file] ***************************************************15changed: [127.0.0.1]1617TASK: [apache | on httpd] *****************************************************18changed: [127.0.0.1]1920PLAY RECAP ********************************************************************21127.0.0.1                  : ok=4    changed=2    unreachable=0    failed=0

ファイルが作成されているか確認してみます。

1$ ls /var/www/html/index.html2/var/www/html/index.html

7.Template設定

続いてテンプレートを試してみます。

テンプレートエンジンとしてjinja2 が使われている為、拡張子を.j2で保存します。

Alias設定のConfを作ってみます。

1$ sudo vim roles/apache/templates/test.conf.j22Alias /test /var/www/test

続いてタスクを更新します。

テンプレートにてconfファイルを作成した後にディレクトリとファイルを作成して再起動を行います。

1$ sudo vim roles/apache/tasks/main.yml2---3- name: apache install4  yum: pkg={{ item }} state=present5  with_items:6    - httpd78- name: template conf9  template: src=test.conf.j2 dest=/etc/httpd/conf.d/test.conf mode=06441011- name: make dir12  file: path=/var/www/test state=directory1314- name: index file15  copy: src=index.html dest=/var/www/test/index.html owner=root group=root mode=06441617- name: on httpd18  service: name=httpd enabled=yes state=restarted

実行してみます。

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: [apache | apache install] ***********************************************12ok: [127.0.0.1] => (item=httpd)1314TASK: [apache | template conf] ************************************************15changed: [127.0.0.1]1617TASK: [apache | make dir] *****************************************************18changed: [127.0.0.1]1920TASK: [apache | index file] ***************************************************21changed: [127.0.0.1]2223TASK: [apache | on httpd] *****************************************************24changed: [127.0.0.1]2526PLAY RECAP ********************************************************************27127.0.0.1                  : ok=6    changed=4    unreachable=0    failed=0

確認してみます。

1$ curl http://127.0.0.1/test/index.html2test

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

お楽しみに!!!

この記事を書いた人

aws-recipe-user