AnsibleでLoopを使う

 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