Ansible:実行時にホストインベントリを更新し、Playbookの実行中に一時停止を追加する方法は?

公開: 2022-02-14

実行時にホストインベントリを更新し、Playbookの実行中に一時停止を追加する方法

Crunchifyでは、Ansibleに関する多数のチュートリアルを公開しており、このチュートリアルでは、実行時にHow to Refresh Host Inventoryし、タスクの実行中Add a Pause方法に焦点を当てます。

この単純なAmazonEC2VM作成シナリオを考えてみましょう。

  • VMを生成するAmazonEC2 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スクリプトを使用してAmazonEC2インスタンスを作成、起動、設定するにはどうすればよいですか? (VMをリモートで生成します)

ステップ2

crunchify-ec2.ymlファイルで以下のタスクを探します。

ご覧のとおり、 Amazon EC2 VMを作成した後、VMのパブリックIPをキャプチャしてhostsファイルに保存しています

同じ.yml fileにいくつかの追加タスクがある場合、IPは自動的にロードされません。 以下の行をAnsiblePlaybookに追加するだけで、すべてのインベントリリストが自動的に更新されます。

同じように、待機を追加する場合は、以下の行を追加するだけです。

上記のタグは、Ansibleプレイブックに1分間の待機時間を導入します。

待機とメタリフレッシュを使用してAmazonEC2のAnsiblePlaybookを更新しました

待機とメタリフレッシュを備えたAmazonEC2のAnsiblePlaybookを更新-Crunchifyのヒント

これが私のサンプルテストAnsiblePlaybookです:

ファイル名:crunchify-refresh-hostfile-pause-1min.yml

出力:

Ansible Playbookをもう一度実行するだけで、以下のような成功した結果が表示されます。

それでおしまい。 おめでとう。 これで、AnsiblePlaybookが正常に実行されました。

すべてのAnsibleチュートリアルをお探しの場合は、Ansibleアーカイブページに従ってください。