0Pricing
Ansible Academy · Aula

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: lb01

Um 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: localhost

As 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: true

Por 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: app01

Os 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: ver

Colete 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

  1. Automatizando dispositivos de rede com cli_command
  2. delegate_to e run_once para orquestração
  3. Coordene camadas Web, de aplicação e DB
  4. Retirada e reativação do balanceador de carga
← Voltar para Ansible Academy