Ramificando com fatos da família do OS
Etapas diferentes para Debian e RedHat.
Ramificando com fatos da família do OS é uma aula grátis de Ansible Academy no CoddyKit. Esta é a aula 2 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 playbook, muitas distribuições
O Debian usa apt, e o RedHat usa dnf. Com fatos e when, um único playbook se adapta a cada sistema operacional. 🐧
O fato os_family
O Ansible coleta ansible_os_family, um rótulo amplo como Debian ou RedHat que agrupa distribuições relacionadas.
when: ansible_facts["os_family"] == "Debian"Família versus distribuição
os_family é abrangente; ansible_distribution é específico. Ubuntu e Debian compartilham a família Debian, mas são distribuições diferentes.
Uma tarefa somente para Debian
Condicione uma tarefa apt para que ela seja executada apenas na família Debian. Os hosts RedHat simplesmente a ignoram.
- name: Install nginx (apt)
ansible.builtin.apt:
name: nginx
when: ansible_os_family == "Debian"A equivalente para RedHat
Adicione uma tarefa semelhante para a família RedHat. Agora os dois ambientes são contemplados pela mesma execução.
- name: Install nginx (dnf)
ansible.builtin.dnf:
name: nginx
when: ansible_os_family == "RedHat"O atalho package
Para instalações simples, o módulo genérico package escolhe automaticamente a ferramenta correta, portanto talvez você nem precise da ramificação.
Strings diferenciam maiúsculas de minúsculas
Os nomes das famílias precisam ser exatos: é RedHat, não Redhat nem redhat. Usar maiúsculas ou minúsculas incorretamente faz com que todos os hosts sejam ignorados silenciosamente. ⚠️
Outros fatos úteis do OS
Além da família, há ansible_distribution_version e ansible_distribution_major_version para decisões mais detalhadas e baseadas na versão.
when: ansible_distribution_major_version == "9"Inspecione antes de ramificar
Não tem certeza de um valor? Uma tarefa rápida de debug imprime o fato para que você possa escrever exatamente a condição necessária.
- ansible.builtin.debug:
var: ansible_os_familyOs fatos precisam ser coletados
A ramificação com base em fatos do OS exige que gather_facts esteja ativado. Se você o tiver desativado, a variável os_family ficará indefinida.
Playbooks portáteis fazem a diferença
Um único arquivo que lida com todas as distribuições é mais fácil de manter do que cópias específicas para cada OS. Fatos combinados com when tornam a automação portátil. 🌍
Verificação rápida
Vamos esclarecer a ramificação por OS.
Recapitulação
Use ansible_os_family em when para ramificar entre Debian e RedHat. Mantenha os fatos ativados e corresponda ao nome exato. ✅
Perguntas Frequentes
A aula “Ramificando com fatos da família do OS” é grátis?
Sim — o texto completo de “Ramificando com fatos da família do OS” é 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 “Ramificando com fatos da família do OS”?
Etapas diferentes para Debian e RedHat. 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 2 de 4.
Quanto tempo leva a aula “Ramificando com fatos da família do OS”?
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
- Execute uma tarefa somente quando for verdadeiro
- Ramificando com fatos da família do OS
- Combinando condições com and / or
- Registre um resultado e depois decida