Ansible:如何在运行时刷新主机清单并在执行 Playbook 时添加暂停?

已发表: 2022-02-14

如何在运行时刷新主机清单并在执行 Playbook 时添加暂停

在 Crunchify 上,我们发布了很多关于 Ansible 的教程,本篇将重点介绍How to Refresh Host Inventory和在执行任务时Add a Pause

让我们考虑这个简单的 Amazon EC2 VM 创建场景:

  • 您正在运行生成 VM 的 Amazon EC2 Ansible 脚本,并且您正在脚本中动态捕获公共 IP。
  • 在执行期间 - 您将该 VM 的公共 IP 添加到[crunchify]组下的hosts文件。
  • 在后续任务中,使用添加到 hosts 文件中的新添加的公共 IP 并在其上安装 Java。
  • 如果您不使用refresh_inventory那么它不会选择新添加的 IP,您将看到与下面相同的失败。

另外,您有以下问题吗?

  • 如何重新加载 Ansible 的dynamic inventory
  • Ansible 动态库存刷新步骤
  • 我可以更新主机清单并在same playbook中使用新主机吗?
  • Ansible Dynamic Inventory 无法获取最新的 EC2 信息——为什么?

让我们开始吧:

第1步

完全遵循如何spawn Amazon EC2 VM instance remotely using Ansible

如何使用简单的 Ansible 脚本创建、启动和配置 Amazon EC2 实例? (远程生成虚拟机)

第2步

crunchify-ec2.yml文件中查找以下任务。

正如您在此处看到的,在创建Amazon EC2 VM之后,我们正在捕获 VM 的公共 IP 并将其存储到hosts文件中

如果您在同一个.yml file中有一些额外的任务,那么 IP 将不会自动加载。 只需将以下行添加到您的 Ansible Playbook,它就会自动刷新您的所有库存列表。

同样,如果您想添加等待,只需添加以下行:

上面的标签会给你的 Ansible playbook 带来一分钟的等待。

使用等待和元刷新更新了适用于 Amazon EC2 的 Ansible Playbook

使用等待和元刷新更新了 Amazon EC2 的 Ansible Playbook - Crunchify 提示

这是我的示例测试 Ansible Playbook:

文件名:crunchify-refresh-hostfile-pause-1min.yml

输出:

只需再次执行 Ansible Playbook,您将看到如下所示的成功结果。

而已。 恭喜。 您已成功运行 Ansible Playbook。

如果您正在寻找所有 Ansible 教程,请关注 Ansible 存档页面。