De onde vêm as variáveis e qual é a precedência
Conheça um primeiro mapa das fontes de variáveis.
De onde vêm as variáveis e qual é a precedência é uma aula grátis de Ansible Academy no CoddyKit. Esta é a aula 4 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.
Tantas fontes
A mesma variável pode ser definida em vários lugares: inventário, variáveis do play, arquivos, a CLI e muito mais. Então, qual valor realmente prevalece? 🌟
A precedência decide
O Ansible segue uma ordem fixa chamada precedência de variáveis. Quando um nome é definido duas vezes, a fonte de maior prioridade substitui a de menor prioridade.
Os padrões de função têm a menor prioridade
Os valores na pasta defaults de uma função ficam na posição mais baixa. Eles foram feitos para serem facilmente substituídos por quase qualquer outra coisa.
# roles/web/defaults/main.yml
http_port: 80Variáveis do inventário
As variáveis definidas no inventário, como em group_vars ou host_vars, têm prioridade maior que os padrões de função, mas menor que as variáveis do play.
# group_vars/web.yml
http_port: 8080As variáveis do play têm mais prioridade
As variáveis sob a chave vars de um play têm prioridade maior que os valores do inventário. Defina um valor aqui e ele prevalecerá sobre qualquer valor em group_vars.
- hosts: web
vars:
http_port: 9090As variáveis da tarefa são específicas
Você pode associar vars a uma única tarefa. Esse valor se aplica somente ali e tem prioridade maior que as variáveis mais abrangentes do play.
- debug:
var: http_port
vars:
http_port: 1234Variáveis registradas e set_fact
Os valores capturados com register ou definidos durante uma execução com set_fact ocupam uma posição alta na ordem, logo abaixo das variáveis extras.
- set_fact:
http_port: 7000As variáveis extras ficam no topo
As variáveis extras da linha de comando prevalecem sobre tudo o mais. O que você passar com -e será a palavra final nessa execução.
ansible-playbook site.yml -e http_port=443Dentro do mesmo nível, vence a última definição
Quando duas fontes compartilham o mesmo nível, entra em vigor aquela carregada por último. Primeiro vem a precedência; a ordem de carregamento desempata.
Mantenha a simplicidade
Raramente é necessário memorizar toda a tabela. Coloque valores sensatos em defaults, faça substituições deliberadas e evite definir o mesmo nome em todos os lugares.
Depure o valor obtido
Não sabe qual valor prevaleceu? Imprima-o com debug para ver o resultado resolvido antes de usá-lo em produção.
- debug:
var: http_portVerificação rápida
Qual fonte de uma variável tem a maior precedência?
Recapitulação
Você mapeou a hierarquia de precedência: defaults em primeiro lugar, depois as variáveis do inventário, do play e da tarefa, então set_fact, com as variáveis extras no topo. ✨
Aprenda YAML com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “De onde vêm as variáveis e qual é a precedência” é grátis?
Sim — o texto completo de “De onde vêm as variáveis e qual é a precedência” é 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 “De onde vêm as variáveis e qual é a precedência”?
Conheça um primeiro mapa das fontes de variáveis. 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 4 de 4.
Quanto tempo leva a aula “De onde vêm as variáveis e qual é a precedência”?
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
- Definindo e usando vars em um play
- A sintaxe de substituição {{ }}
- Variáveis extras na linha de comando
- De onde vêm as variáveis e qual é a precedência