PlaybookでLoopを使う方法
http://docs.ansible.com/playbooks_loops.html#loops からの抜粋
標準ループ
変数ファイルもしくはvarsセクションで、YAMLのリストを定義した場合は、以下のようにする。
with_items: somelist
hashのリスト
- name: add several users
user: name={{ item.name }} state=present group={{ item.groups }}
with_items:
- { name: 'testuser1', groups: 'wheel' }
- { name: 'testuser2', groups: 'root' }
ネステッドループ
- name: give users access to multiple database
mysql_user: name={{ item[0] }} priv={{ item[1] }}.*:ALL append_privs=yes
with_nested:
- [ 'alice', 'bob', 'eve' ]
- [ 'clientdb', 'employeedb', 'providerdb' ]
上記実行の場合の組み合わせ。
item[0] : item[1]
alice : clientdb
alice : employeedb
alice : providerdb
bob : clientdb
bob : employeedb
bob : providerdb
eve : clientdb
eve : employeedb
eve : providerdb
vars:
users:
- name: test1.txt
- name: test2.txt
tasks:
- name: file copy
copy: src=/tmp/src/{{ item.name }} dest=/tmp/dst/{{ item.name }}with_items: users