delegate_to e run_once para orquestração
Execute uma tarefa em um host para vários outros.
delegate_to e run_once para orquestração é 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.
As tarefas nem sempre são executadas onde o senhor pensa
Por padrão, cada tarefa é executada no servidor de destino. Para orquestração, às vezes é necessário executar uma tarefa em um local completamente diferente. 🎯
Conheça delegate_to
A palavra-chave delegate_to executa uma tarefa em um servidor diferente do atual, usando ainda as variáveis desse servidor.
- name: Add web node to load balancer
community.general.haproxy:
host: "{{ inventory_hostname }}"
state: enabled
delegate_to: lb01Um caso de uso clássico
Enquanto percorre os nós web em um loop, delegue a alteração do balanceador de carga ao servidor LB. O play continua sendo executado por nó, mas a ação é realizada no LB.
Delegue para o localhost
Execute uma tarefa no seu nó de controle delegando-a para o localhost. Isso é ótimo para chamar uma API ou enviar uma notificação a partir de um único local.
- name: Notify chat
ansible.builtin.uri:
url: "{{ webhook }}"
method: POST
delegate_to: localhostAs variáveis permanecem com o servidor original
A delegação muda o local de execução de uma tarefa, mas não os fatos que ela consulta. inventory_hostname ainda identifica o destino original, não o servidor delegado.
Conheça run_once
A palavra-chave run_once executa uma tarefa uma única vez para todo o lote, e não uma vez por servidor. O Ansible escolhe o primeiro servidor para executá-la.
- name: Run database migration
ansible.builtin.command: ./migrate.sh
run_once: truePor que run_once é importante
Algumas ações devem ocorrer apenas uma vez, como uma migração ou uma eleição de líder. run_once impede que cada servidor repita a mesma etapa compartilhada.
Use as duas juntas
Combine run_once com delegate_to para executar uma ação em um único servidor escolhido, como realizar uma migração a partir de um único nó da aplicação.
- name: Migrate db once
ansible.builtin.command: ./migrate.sh
run_once: true
delegate_to: app01Os resultados são compartilhados
Com run_once, um resultado registrado é compartilhado entre todos os servidores do lote. Todos veem a saída dessa única execução.
- ansible.builtin.command: cat /etc/version
run_once: true
register: verColete fatos de um servidor delegado
Use delegate_facts se quiser associar os fatos coletados ao servidor delegado, em vez do servidor atual. Essa opção vem desativada por padrão.
Orquestração, não apenas configuração
Juntas, essas palavras-chave transformam a configuração por servidor em verdadeira orquestração: coordenar uma ação entre uma frota a partir de um único ponto.
Verificação rápida
Verifique estas palavras-chave de orquestração.
Recapitulação
Use delegate_to para executar uma tarefa em outro servidor e run_once para executá-la apenas uma vez por lote, que é a base da orquestração. ✅
Perguntas Frequentes
A aula “delegate_to e run_once para orquestração” é grátis?
Sim — o texto completo de “delegate_to e run_once para orquestração” é 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 “delegate_to e run_once para orquestração”?
Execute uma tarefa em um host para vários outros. 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 “delegate_to e run_once para orquestração”?
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
- Automatizando dispositivos de rede com cli_command
- delegate_to e run_once para orquestração
- Coordene camadas Web, de aplicação e DB
- Retirada e reativação do balanceador de carga