ansible
Несоблюдение: Цикл
Поиск…
with_items - простой список
Цикл with_items
in ansible может использоваться для простого 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 - предопределенный список
Вы также можете перебирать список переменных.
Из vars:
favorite_snacks:
- hotdog
- ice cream
- chips
а затем цикл:
- name: create directories for storing my snacks
file: path=/etc/snacks/{{ item }} state=directory
with_items: '{{ favorite_snacks }}'
Если вы используете Ansible 2.0+, вы должны использовать кавычки вокруг вызова переменной.
with_items - предопределенный словарь
Можно создавать более сложные циклы со словарями.
Из vars:
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
четырьмя ключами, определенными в списке.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow