Ansible: Como atualizar o inventário do host em tempo de execução e adicionar uma pausa durante a execução do Playbook?

Publicados: 2022-02-14

Como atualizar o inventário do host em tempo de execução e adicionar uma pausa durante a execução do Playbook

No Crunchify, publicamos vários tutoriais no Ansible e este vai se concentrar em How to Refresh Host Inventory em tempo de execução e Add a Pause durante a execução de tarefas.

Vamos considerar este cenário simples de criação de VM do Amazon EC2:

  • Você está executando o script Ansible do Amazon EC2 que gera uma VM e está capturando dinamicamente IPs públicos no script.
  • Durante a execução – você está adicionando IP público dessa VM ao arquivo de hosts no grupo [crunchify] .
  • Na tarefa subsequente, use o IP público recém-adicionado que foi adicionado ao arquivo hosts e instale o Java nele.
  • Se você não usar o refresh_inventory , ele não pegará o IP recém-adicionado e você verá a mesma falha abaixo.

Além disso, você tem alguma das perguntas abaixo?

  • Como recarregar o dynamic inventory do Ansible
  • Etapas de atualização de inventário dinâmico do Ansible
  • Posso atualizar o inventário de hosts e usar novos hosts no same playbook ?
  • O Ansible Dynamic Inventory não consegue obter as informações mais recentes do EC2 – por quê?

Vamos começar:

Passo 1

Siga completamente o tutorial sobre como spawn Amazon EC2 VM instance remotely using Ansible ?

Como criar, iniciar e configurar uma instância do Amazon EC2 usando um script simples do Ansible? (gerar VM remotamente)

Passo 2

Procure uma tarefa abaixo no arquivo crunchify-ec2.yml .

Como você vê aqui, depois de criar Amazon EC2 VM , estamos capturando o IP público da VM e armazenando-o no arquivo hosts

Se você tiver algumas tarefas adicionais no mesmo .yml file , os IPs não serão carregados automaticamente. Basta adicionar a linha abaixo ao seu Ansible Playbook e ele atualizará automaticamente toda a sua lista de inventário.

Da mesma forma, se você quiser adicionar wait, basta adicionar a linha abaixo:

A tag acima apresentará uma espera de um minuto ao seu manual do Ansible.

Playbook Ansible atualizado para Amazon EC2 com Wait e Meta Refresh

Playbook Ansible atualizado para Amazon EC2 com Wait e Meta Refresh - Dicas do Crunchify

Aqui está meu exemplo de teste Ansible Playbook:

Nome do arquivo: crunchify-refresh-hostfile-pause-1min.yml

Saída:

Basta executar seu Ansible Playbook novamente e você verá o resultado bem-sucedido abaixo.

É isso. Parabéns. Você executou com êxito o Ansible Playbook.

Se você estiver procurando por todos os tutoriais do Ansible, siga a página Ansible Archive.