*作業メモ的な不完全な記事です。あとでまとめを書くかもしれません。
はぁはぁ、前回に引き続きやっていきます。手探り過ぎて疲れてきた。。
とりあえず、今回は前回作成したtaskをRoleに分割してみました。わかりやすい範囲でroleに分けたらファイル構成はこうなりました。
. ├── hosts ├── ocean.yml └── roles ├── common │ ├── defaults │ │ └── main.yml │ ├── files │ ├── handlers │ │ └── main.yml │ ├── meta │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ ├── templates │ │ └── my_iptables.j2 │ └── vars │ └── main.yml ├── nginx │ ├── defaults │ │ └── main.yml │ ├── files │ ├── handlers │ │ └── main.yml │ ├── meta │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ ├── templates │ │ └── my_nginx.conf.j2 │ └── vars │ └── main.yml └── ruby ├── defaults │ └── main.yml ├── files ├── handlers │ └── main.yml ├── meta │ └── main.yml ├── tasks │ └── main.yml ├── templates └── vars └── main.yml
メインのymlはこうなりました。roleに収まらなそうなものはtaskとして残してみました。これ全部commonに入れて良いのかな。わからぬ。
-—
-
hosts: ocean roles:
- common
- nginx
- ruby tasks:
- name: install memcached yum: name=memcached state=present
- name: install epel yum: name=epel-release state=present
- name: install node.js yum: name=nodejs state=present
- name: install npm yum: name=npm state=present
- name: install ImageMagick yum: name=ImageMagick state=present
- name: install libxml yum: name=libxml2-devel state=present
- name: install libxslt yum: name=libxslt-devel state=present
とりあえず、分けてよかったこととして、templateファイルを指定する際に、わざわざvarsを書く必要なく、ファイル名だけで行けたことです。あと、nginxやrubyの設定がまとめて書き出せたのでわかりやすくなりました。それぞれのroleの中でvarsを指定することで柔軟に色々できそうです。
前回と全く同じ処理を実行するのですが、大分スッキリしました!