サーチ…


with_items - 単純なリスト

with_itemsループを使用すると、簡単に値をループすることができます。

- name: Add lines to this file
  lineinfile: dest=/etc/file line={{ item }} state=present
  with_items:
    - Line 1
    - Line 2
    - Line 3

with_items - 定義済みのリスト

変数リストをループすることもできます。

ヴァルスから:

favorite_snacks:
  - hotdog
  - ice cream
  - chips

そしてループ:

- name: create directories for storing my snacks
  file: path=/etc/snacks/{{ item }} state=directory
  with_items: '{{ favorite_snacks }}'

Anabilities 2.0+を使用している場合は、変数への呼び出しの前後で引用符を使用する必要があります。

with_items - 定義済みの辞書

辞書でより複雑なループを作成することは可能です。

ヴァルスから:

packages:
  - present: tree
  - present: nmap
  - absent: apache2

ループは次のようになります。

- name: manage packages
  package: name={{ item.value }} state={{ item.key }}
  with_items: '{{ packages }}'

または、キー値を使用したくない場合は、次のようにします。

ヴァルス:

packages:
  - name: tree
    state: present
  - name: nmap
    state: present
  - name: apache2
    state: absent

ループは次のようになります。

- name: manage packages
  package: name={{ item.name }} state={{ item.state }}
  with_items: '{{ packages }}'

with_items - 辞書

あなたは少し複雑なループのために辞書を使うことができます。

- name: manage packages
  package: name={{ item.name }} state={{ item.state }}
  with_items:
    - { name: tree, state: present }
    - { name: nmap, state: present }
    - { name: apache2, state: absent }

ネストされたループ

with_nestedを使用してネストされたループを作成できます。

ヴァルスから:

keys:
  - key1
  - key2
  - key3
  - key4

ループは次のようになります。

- name: Distribute SSH keys among multiple users
  lineinfile: dest=/home/{{ item[0] }}/.ssh/authorized_keys line={{ item[1] }} state=present
  with_nested:
    - [ 'calvin', 'josh', 'alice' ]
    - '{{ keys }}'

このタスクは各ユーザーをループし、 authorized_keysファイルにリストに定義されている4つのキーを設定します。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow