ベース、モニタリング、nginx、およびベースと nginx のみの別の Playbook というロールを持つ Playbook を想像してみましょう。
nginx を監視するには、監視サービスに少し異なる構成を渡す必要があるため、プレイブックに nginx の役割が含まれている場合にのみ、監視の役割でタスクを実行する必要があります。
別の役割の存在に依存するタスクを実行する方法は?
ベース、モニタリング、nginx、およびベースと nginx のみの別の Playbook というロールを持つ Playbook を想像してみましょう。
nginx を監視するには、監視サービスに少し異なる構成を渡す必要があるため、プレイブックに nginx の役割が含まれている場合にのみ、監視の役割でタスクを実行する必要があります。
別の役割の存在に依存するタスクを実行する方法は?
コメントでの私の回避策はうまくいったかもしれませんが、それでも最善の方法ではないと感じています。モジュール式ではありません。たとえば、監視システムを変更する状況では、各役割に移動して、監視コンポーネントがあるかどうかを確認し、それを更新する必要があります...最適な方法ではありません。
おそらくより良い方法は、別の監視ロールを含めることですが、プレイブックの条件を使用して特定のタスクを実行します。たとえば、nginx監視タスクは、 [webservers]グループwhen
の一部であるこのサーバーのみを実行します。または、特定の変数が特定の値に設定されたとき、または他の適切な条件が満たされたとき。