Ansible-advanced-execution
Ansible-高度な実行
この章では、Ansibleによる高度な実行とは何かを学びます。
タスクによる実行を制限する方法
これは、プレイブック全体ではなく、1つの実行のみを実行する必要がある非常に重要な実行戦略です。 たとえば、サーバーを停止するだけで(運用上の問題が発生した場合)、サーバーの起動のみを希望するパッチの適用をポストするとします。
元のプレイブックでは、ストップとスタートは同じプレイブックの異なる役割の一部でしたが、これはタグの使用で処理できます。 異なるロールに異なるタグを提供し(これにはタスクが割り当てられます)、したがって、指定されたロール/タスクのみが実行されるエグゼキューターによって提供されるタグに基づきます。 したがって、上記の例では、次のようなタグを追加できます-
次のコマンドは、タグの使用に役立ちます-
上記のコマンドを使用すると、start-tomcatロールのみが呼び出されます。 提供されるタグでは大文字と小文字が区別されます。 完全一致がコマンドに渡されていることを確認してください。
ホストによる実行を制限する方法
特定のホストで特定のステップを実行するには、2つの方法があります。 特定の役割に対して、ホストを定義します-特定の役割を実行する特定のホストについて。
例
上記の例のように、提供されるホストに応じて、それぞれのロールのみが呼び出されます。 これで、ホストAとBがホスト(インベントリファイル)に定義されました。
代替ソリューション
別の解決策は、変数を使用してプレイブックのホストを定義し、*-extra-vars *を介して特定のホストアドレスを渡すことです。
プレイブックの実行
\ {\ {target}}が定義されていない場合、プレイブックは何もしません。 必要に応じて、hostsファイルのグループもパススルーできます。 余分な変数が提供されない場合、これは害になりません。