Usando ansible_facts nas tarefas
Crie ramificações com base em facts de OS, memória e IP.
Usando ansible_facts nas tarefas é 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.
Dos dados às decisões
Os fatos coletados só são úteis se você agir com base neles. Agora você vai extrair valores de ansible_facts diretamente para suas tarefas. 🌟
Fazer referência a um fato
Use a mesma sintaxe {{ }} de qualquer variável. Dentro das chaves, informe o fato desejado, como a distribuição do host.
- debug:
msg: "OS is {{ ansible_distribution }}"O acesso ao dicionário também é possível
Você também pode ler os fatos pelo dicionário ansible_facts, usando chaves entre colchetes. Os dois estilos apontam para os mesmos dados.
{{ ansible_facts['distribution'] }}Tomar decisões com base no OS
Combine um fato com when para executar uma tarefa somente nos hosts correspondentes, como instalar um pacote apenas em sistemas Debian.
when: ansible_os_family == "Debian"Escolher o pacote correto
Os fatos permitem que uma única tarefa atenda a várias distribuições. Escolha apache2 ou httpd com base na família do OS, em vez de escrever dois playbooks.
name: "{{ 'apache2' if ansible_os_family == 'Debian' else 'httpd' }}"Usar fatos numéricos
Fatos como ansible_memtotal_mb são números, então você pode compará-los e evitar trabalho em hosts pequenos demais.
when: ansible_memtotal_mb > 2048Acessar valores aninhados
Para fatos aninhados, encadeie as chaves com pontos. O endereço IPv4 padrão fica sob ansible_default_ipv4 e, em seguida, address.
{{ ansible_default_ipv4.address }}Fatos em modelos
Os mesmos nomes de fatos funcionam dentro de modelos Jinja2. Insira o hostname ou IP de um host diretamente em um arquivo de configuração gerado.
server_name {{ ansible_hostname }};Percorrer listas de fatos
Alguns fatos são listas, como ansible_interfaces. Você pode percorrê-las para agir em cada interface de rede existente em um host.
loop: "{{ ansible_interfaces }}"Confirmar antes de confiar
Não tem certeza do valor exato de um fato? Imprima-o primeiro com debug e depois crie a lógica que depende dele.
- debug:
var: ansible_distribution_versionUm playbook, muitos hosts
Como os fatos são específicos de cada host, as tarefas orientadas por fatos fazem um único playbook funcionar corretamente em uma frota heterogênea de máquinas.
Verificação rápida
Como você executaria uma tarefa somente em hosts da família Debian?
Recapitulação
Você leu fatos com {{ }}, tomou decisões com when, acessou valores aninhados e percorreu listas de fatos para tornar as tarefas adaptáveis. ✨
Perguntas Frequentes
A aula “Usando ansible_facts nas tarefas” é grátis?
Sim — o texto completo de “Usando ansible_facts nas tarefas” é 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 “Usando ansible_facts nas tarefas”?
Crie ramificações com base em facts de OS, memória e IP. 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 “Usando ansible_facts nas tarefas”?
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
- O que são facts e por que importam
- Explorando facts com o módulo setup
- Usando ansible_facts nas tarefas
- Desativando a coleta de facts para ganhar velocidade