Loops aninhados com subelements
Percorra listas dentro de listas.
Loops aninhados com subelements é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Listas dentro de listas
Às vezes, cada item contém sua própria lista: um usuário com várias chaves SSH, um grupo com muitos membros. Essa é uma estrutura aninhada. 🪆
A consulta subelements
A consulta subelements associa cada elemento pai a cada elemento filho da sua lista interna, transformando o aninhamento em iterações individuais.
loop: "{{ users | subelements('keys') }}"Dois argumentos
subelements recebe a lista pai e o nome da chave interna a ser expandida. Ele produz uma iteração para cada elemento filho.
vars:
users:
- name: alice
keys:
- keyA
- keyBitem se torna um par
Com subelements, item é uma lista de duas partes: item.0 é o dicionário pai, e item.1 é o valor do filho atual.
- ansible.builtin.debug:
msg: "{{ item.0.name }} has {{ item.1 }}"
loop: "{{ users | subelements('keys') }}"Autorize muitas chaves SSH
O caso clássico: forneça a cada usuário todas as suas chaves SSH. item.0.name é o usuário, e item.1 é uma chave a cada iteração.
- ansible.posix.authorized_key:
user: "{{ item.0.name }}"
key: "{{ item.1 }}"
loop: "{{ users | subelements('keys') }}"O filho pode ser um dicionário
Os elementos internos também podem ser dicionários. Nesse caso, item.1 tem seus próprios campos, como item.1.path ou item.1.mode.
Conte as iterações
Três usuários com duas chaves cada significam seis iterações. subelements multiplica automaticamente os pais pelos filhos.
Ignore listas internas ausentes
Se um pai puder não ter a chave interna, adicione skip_missing para que subelements a ignore silenciosamente em vez de falhar.
loop: "{{ users | subelements('keys', skip_missing=true) }}"Por que não usar dois loops?
Uma tarefa não pode aninhar diretamente duas palavras-chave loop. subelements é a forma limpa e compatível de percorrer uma estrutura pai-filho em uma única tarefa.
Legibilidade é melhor que esperteza
Dados profundamente aninhados podem ficar difíceis de acompanhar. Mantenha suas estruturas rasas quando possível; use subelements quando realmente precisar dele.
Ainda idempotente
Cada par é uma chamada de módulo independente, portanto adicionar uma chave já presente informa ok. O aninhamento não altera nada nas execuções seguras.
Verificação rápida
Ao usar subelements, a que item.0 se refere?
Recapitulação: loops aninhados
Você transformou dados pai-filho em uma estrutura plana com subelements, usou item.0 e item.1 e tratou listas ausentes com segurança. A seguir: loop_control. 🎉
Perguntas Frequentes
A aula “Loops aninhados com subelements” é grátis?
Sim — o texto completo de “Loops aninhados com subelements” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Loops aninhados com subelements”?
Percorra listas dentro de listas. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Loops aninhados com subelements”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- A palavra-chave loop sobre uma lista
- Percorrendo dicionários
- Loops aninhados com subelements
- loop_control: label, index e pause