こんにちにわ。アウルキャンプ永野です。

弊社ではAnsibleでの自動構築を推進しています。
Ansibleは楽ですね。
Ansibleも2.0になったりRedhatに買収されたりしたことで
Chefより伸びるんではないか?!
と密かに期待をしております。

早速ですが以下のようなことをしたい場合は
host_varsに変数を書いてループさせたい時ってありますよね?
自分はありました。

server1の自動起動させたいサービス

httpdpostfix

server2の自動起動させたいサービス

httpdpostfixmysql

その場合は以下のように記載すると幸せになれました!

host_vars/server1.yml

server1用のservice_on配列を作成します。

service_on:
  - httpd
  - postfix

host_vars/server2.yml

こちらも同様にserver2用のservice_on配列を作成します。

service_on:
  - httpd
  - iptables
  - mysql

owlcamp/service_on/tasks/main.yml

- name: "service start"
  name: "{{ item }}"
  state: started
    enabled: yes
  with_items: service_on
  become: yes

ミソとしては

nameに記載されている{{ item }}には
忘れずにダブルコーテションで閉じること
これを閉じてしまうとエラーになってしまいます。
これを知っているだけでも色々な応用が可能になり
Ansibleのベストプラクティスに則ったディレクトリ構成が使いやすくなります。
結構ハマると見つかりづらいのでしっかりと覚えておきたいところです。