75 lines
1.4 KiB
Markdown
75 lines
1.4 KiB
Markdown
---
|
|
status: stable
|
|
type: concept
|
|
tags:
|
|
- devops
|
|
- ansible
|
|
created: 2025-12-17
|
|
updated: 2026-05-07
|
|
aliases:
|
|
- Loops - Ansuble
|
|
---
|
|
# Loops - Ansuble
|
|
|
|
Для перебора значений в модулях Ansbible используются две конструкции:
|
|
|
|
1. `loop` - универсален, используется, когда перебираемые значения - это строки в словаре (`user = { name: Boris; age: 22 }`)
|
|
2. Директива `with_*` - где `*` - обозначение конкретного итератора
|
|
|
|
## Loop
|
|
|
|
```text
|
|
-
|
|
name: Цикл
|
|
hosts: all
|
|
tasks:
|
|
-
|
|
name: Цикл loop для создания пользователя
|
|
user:
|
|
name: '{{ item.name }}'
|
|
age: '{{ item.age }}'
|
|
uid: '{{ item.uid }}'
|
|
loop:
|
|
- name: Boris
|
|
age: 22
|
|
uid: 1011
|
|
- name: Anna
|
|
age: 23
|
|
uid: 1012
|
|
...
|
|
```
|
|
|
|
## with_
|
|
|
|
```text
|
|
-
|
|
name: Цикл
|
|
hosts: all
|
|
tasks:
|
|
-
|
|
name: Цикл with для создания пользователя
|
|
user:
|
|
name: '{{ item }}'
|
|
age: '{{ item }}'
|
|
uid: '{{ item }}'
|
|
with_items:
|
|
- name: Boris
|
|
- name: Anna
|
|
...
|
|
```
|
|
|
|
```text
|
|
-
|
|
name: 'Print list of fruits'
|
|
hosts: localhost
|
|
vars:
|
|
fruits:
|
|
- Apple
|
|
- Banana
|
|
- Grapes
|
|
- Orange
|
|
tasks:
|
|
-
|
|
command: 'echo "{{ item }}"'
|
|
with_items: '{{ fruits }}'
|
|
``` |