Dividindo playbooks com import e include
Inclusão estática versus dinâmica de tarefas.
Dividindo playbooks com import e include é uma aula grátis de Ansible Academy 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 Ansible Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ansible Academy inclui 4 aulas no total.
Um Arquivo Gigante Causa Problemas
Um manual de execução com 500 linhas é difícil de ler e reutilizar. O Ansible permite dividir o trabalho em partes e incluí-las onde for necessário. ✂️
Duas famílias: import e include
O Ansible oferece dois estilos de reutilização: import_* para inclusão estática e include_* para inclusão dinâmica. A diferença está no momento em que isso ocorre.
Importação estática com import_tasks
import_tasks é pré-processado quando o playbook é analisado, antes da execução de qualquer tarefa. Ele é fixo e previsível.
- import_tasks: setup.ymlInclusão dinâmica com include_tasks
include_tasks é processado durante a execução, na ordem, portanto pode reagir a variáveis e resultados definidos anteriormente no play.
- include_tasks: "{{ os_family }}.yml"Por que o momento é importante
Como import é estático, você não pode usar uma variável de execução no nome do arquivo. Para isso, precisa usar o include_tasks dinâmico.
Laços exigem include
Quer repetir um arquivo inteiro? Somente include_tasks aceita laços, pois o conjunto de arquivos é decidido enquanto o play é executado.
- include_tasks: user.yml
loop: "{{ users }}"As tags se comportam de forma diferente
Uma tag em import_tasks aplica-se a todas as tarefas importadas, mas uma tag em include_tasks aplica-se somente à própria instrução de inclusão.
Importando playbooks inteiros
No nível superior, use import_playbook para combinar playbooks inteiros. É exatamente assim que site.yml monta seu projeto.
- import_playbook: webservers.yml
- import_playbook: dbservers.ymlReutilização entre plays
Arquivos de tarefas compartilhados, como um arquivo comum de inicialização, podem ser importados para vários playbooks, para que você escreva a lógica uma vez e a reutilize em todos os lugares.
Um padrão sensato
Prefira import para etapas previsíveis que sempre serão executadas. Recorra a include somente quando realmente precisar de decisões durante a execução, como laços ou nomes de arquivos variáveis.
A divisão em ação
Aqui, um play importa um arquivo de configuração estático e, em seguida, inclui condicionalmente um arquivo específico do OS. Duas ferramentas, duas funções. 🎯
tasks:
- import_tasks: base.yml
- include_tasks: "{{ ansible_os_family }}.yml"Verificação rápida
Você precisa de um nome de arquivo construído a partir de uma variável de execução. Qual diretiva funciona?
Recapitulação
Você aprendeu que import_* é estático e analisado antecipadamente, enquanto include_* é dinâmico e executado no ponto em que aparece, permitindo laços e nomes de arquivos variáveis. ✅
Perguntas Frequentes
A aula “Dividindo playbooks com import e include” é grátis?
Sim — o texto completo de “Dividindo playbooks com import e include” é 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 Ansible Academy, atualize para CoddyKit PRO. O curso de Ansible Academy inclui 4 aulas no total.
O que vou aprender em “Dividindo playbooks com import e include”?
Inclusão estática versus dinâmica de tarefas. Você pratica Ansible Academy 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 Ansible Academy?
Nenhuma experiência prévia é necessária. Ansible Academy 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 “Dividindo playbooks com import e include”?
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 Ansible Academy?
Sim. Cada aula de Ansible Academy 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 organização de diretórios recomendada
- Diretórios group_vars e host_vars
- Dividindo playbooks com import e include
- Nomes, comentários e estilo que escalam