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,它就會自動刷新您的所有庫存列表。

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

上面的標籤會給你的 A​​nsible playbook 帶來一分鐘的等待。

使用等待和元刷新更新了適用於 Amazon EC2 的 Ansible Playbook

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

這是我的示例測試 Ansible Playbook:

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

輸出:

只需再次執行 Ansible Playbook,您將看到如下所示的成功結果。

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

如果您正在尋找所有 Ansible 教程,請關注 Ansible 存檔頁面。