Ansible: как обновить инвентарь хоста во время выполнения и добавить паузу при выполнении Playbook?

Опубликовано: 2022-02-14

Как обновить инвентарь хоста во время выполнения и добавить паузу при выполнении Playbook

На Crunchify мы опубликовали так много руководств по Ansible, и это будет посвящено тому, How to Refresh Host Inventory во время выполнения и Add a Pause при выполнении задач.

Давайте рассмотрим этот простой сценарий создания виртуальной машины Amazon EC2:

  • Вы используете сценарий Amazon EC2 Ansible, который создает виртуальную машину, и вы динамически фиксируете общедоступные IP-адреса в сценарии.
  • Во время выполнения вы добавляете общедоступный IP-адрес этой виртуальной машины в файл hosts в группе [crunchify] .
  • В следующей задаче используйте недавно добавленный общедоступный IP-адрес, который был добавлен в файл hosts, и установите на него Java.
  • Если вы не используете refresh_inventory , он не подберет новый добавленный IP-адрес, и вы увидите ошибку, как показано ниже.

Кроме того, есть ли у вас какие-либо из следующих вопросов?

  • Как перезагрузить dynamic inventory Ansible
  • Шаги обновления динамического инвентаря Ansible
  • Могу ли я обновить инвентарь хостов и использовать новые хосты в same playbook ?
  • Ansible Dynamic Inventory не может получить последнюю информацию EC2 — почему?

Давайте начнем:

Шаг 1

Полностью следовать руководству о том, как spawn Amazon EC2 VM instance remotely using Ansible ?

Как создать, запустить и настроить экземпляр Amazon EC2 с помощью простого сценария Ansible? (удаленно запускать виртуальную машину)

Шаг 2

Найдите приведенную ниже задачу в crunchify-ec2.yml .

Как вы видите здесь, после создания Amazon EC2 VM мы фиксируем общедоступный IP-адрес виртуальной машины и сохраняем его в файле hosts .

Если у вас есть какие-то дополнительные задачи в том же .yml file IP-адреса не будут загружаться автоматически. Просто добавьте строку ниже в свою Ansible Playbook, и она автоматически обновит весь ваш список инвентаря.

Точно так же, если вы хотите добавить ожидание, просто добавьте строку ниже:

Тег выше введет минутное ожидание вашего плейбука Ansible.

Обновленный Ansible Playbook для Amazon EC2 с функцией ожидания и метаобновления

Обновленный Ansible Playbook для Amazon EC2 с ожиданием и мета-обновлением — советы Crunchify

Вот мой пример теста Ansible Playbook:

Имя файла: crunchify-refresh-hostfile-pause-1min.yml

Выход:

Просто снова запустите Ansible Playbook, и вы увидите успешный результат, как показано ниже.

Вот и все. Поздравляем. Вы успешно запустили Ansible Playbook.

Если вы ищете все руководства по Ansible, перейдите на страницу архива Ansible.