こんにちは! JQです。
前回は『OSS編~AnsibleでRoleを試してみる01~』と題して、AnsibleでRoleのTaskを試してみました。
今回は『OSS編~AnsibleでRoleを試してみる02~』と題して、AnsibleでRoleのTemplatesとFileを試してみたいと思います。
これまでの工程はこちらをご参照下さい。
6.Files設定
前回では簡単なタスクを実行しました。
次はFilesを試してみたいと思います。
簡単なファイルをフォルダに作成します。
1 2 |
$ sudo vim roles/apache/files/index.html test |
taskにcopyを追加してみます。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo vim roles/apache/tasks/main.yml --- - name: apache install yum: pkg={{ item }} state=present with_items: - httpd - name: index file copy: src=index.html dest=/var/www/html/index.html owner=root group=root mode=0644 - name: on httpd service: name=httpd enabled=yes state=started |
実施してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ 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: [apache | apache install] *********************************************** ok: [127.0.0.1] => (item=httpd) TASK: [apache | index file] *************************************************** changed: [127.0.0.1] TASK: [apache | on httpd] ***************************************************** changed: [127.0.0.1] PLAY RECAP ******************************************************************** 127.0.0.1 : ok=4 changed=2 unreachable=0 failed=0 |
ファイルが作成されているか確認してみます。
1 2 |
$ ls /var/www/html/index.html /var/www/html/index.html |
7.Template設定
続いてテンプレートを試してみます。
テンプレートエンジンとしてjinja2 が使われている為、拡張子を.j2で保存します。
Alias設定のConfを作ってみます。
1 2 |
$ sudo vim roles/apache/templates/test.conf.j2 Alias /test /var/www/test |
続いてタスクを更新します。
テンプレートにてconfファイルを作成した後にディレクトリとファイルを作成して再起動を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ sudo vim roles/apache/tasks/main.yml --- - name: apache install yum: pkg={{ item }} state=present with_items: - httpd - name: template conf template: src=test.conf.j2 dest=/etc/httpd/conf.d/test.conf mode=0644 - name: make dir file: path=/var/www/test state=directory - name: index file copy: src=index.html dest=/var/www/test/index.html owner=root group=root mode=0644 - name: on httpd service: name=httpd enabled=yes state=restarted |
実行してみます。
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 |
$ 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: [apache | apache install] *********************************************** ok: [127.0.0.1] => (item=httpd) TASK: [apache | template conf] ************************************************ changed: [127.0.0.1] TASK: [apache | make dir] ***************************************************** changed: [127.0.0.1] TASK: [apache | index file] *************************************************** changed: [127.0.0.1] TASK: [apache | on httpd] ***************************************************** changed: [127.0.0.1] PLAY RECAP ******************************************************************** 127.0.0.1 : ok=6 changed=4 unreachable=0 failed=0 |
確認してみます。
1 2 |
$ curl http://127.0.0.1/test/index.html test |
いかがでしたでしょうか?
お楽しみに!!!