O que é Ansible com_items?
O Ansible With_items é um plug -in útil para executar operações de loop em um manual. O plug -in aceita itens e depois os passa para o módulo de chamada. Por exemplo, você pode passar uma lista de pacotes para instalar e depois fornecer cada item da lista para a tarefa de instalação.
Nota: Se um item tiver uma lista aninhada, Ansible o achatará, mas não a recursão.
Para usar os plug -ins do with_items, use a palavra -chave with_items em um manual e passe uma lista de itens sob ele. Você pode ligar para cada item dentro da lista especificada e executar as operações necessárias.
Uso básico
O exemplo a seguir ilustra a sintaxe para o plug -in do with_items:
---
- Hosts: todos
Nome: com sintaxe de itens
depurar:
msg: "Este é o item item"
with_items:
- "a"
- "B"
- "C"
O exemplo acima mostra uma lista simples usando o plugin with_items.
Se você quiser ter uma lista aninhada, pode fazer:
---
- Hosts: todos
Nome: Lista aninhada
depurar:
msg: "Bancos de dados item"
with_items:
- ["MySQL", "PostGresql"] - "SQL"
- ["MongoDB", "DocumentDB", "Firestore"] - "Nosql"
Você também pode ter uma lista com variáveis, conforme mostrado no manual de exemplo abaixo:
---
- Hosts: todos
Nome: Lista aninhada
var1: "item.var1 "
var2: "item.var2 "
with_items:
- var1: Exemplo1, var2: Exemplo2
- var1: Exemplo3, var2: Exemplo4
Ansible With_Items Exemplos
Os exemplos a seguir ilustram como você pode usar o módulo Ansible With_items.
---
- Hosts: todos
tornar verdade
Gather_facts: Não
tarefas:
- Nome: Crie usuários
do utilizador:
Nome: "item"
Grupos: teste
Estado: presente
with_items:
- usuário1
- usuário2
O manual acima usa com_items para criar vários usuários.
---
- Hosts: todos
tornar verdade
Gather_facts: Não
tarefas:
- Nome: Instale pacotes
APT:
Nome: "item"
Estado: presente
with_items:
- Apache2
- ufw
- mysql
No exemplo acima, usamos o with_items para dar um loop sobre os itens e passá -los para o instalador do pacote APT.
---
- Hosts: todos
tornar verdade
Gather_facts: Não
tarefas:
- Nome: Crie arquivos
arquivo:
caminho: "~/item.nome"
Estado: toque
modo: "item.perm "
with_items:
- Nome: File1, Perm: "0777"
- Nome: File2, Perm: "0644"
No manual de exemplo acima, criamos uma lista de arquivos e suas respectivas permissões usando o plugin with_items.
Conclusão
Este guia discutiu como o plug -in Ansible With_items funciona e como fazer um loop sobre uma lista de itens.