私は、プレイブックによってトリガされた現在のハンドラ通知を含むリスト(おそらくはシステム変数)を取得する方法を探しています。続行可能な通知リストを取得
つまり、役割のある時点で、「再起動通知」が送信されていないかどうかをテストするタスクに「いつ」の条件を追加したいのですか? - >再起動時にこのタスクを実行します通知リストに含まれていません
ご存じですか?
ありがとうございます!
私は、プレイブックによってトリガされた現在のハンドラ通知を含むリスト(おそらくはシステム変数)を取得する方法を探しています。続行可能な通知リストを取得
つまり、役割のある時点で、「再起動通知」が送信されていないかどうかをテストするタスクに「いつ」の条件を追加したいのですか? - >再起動時にこのタスクを実行します通知リストに含まれていません
ご存じですか?
ありがとうございます!
私は結局、事実を使って、かなり受け入れられる解決策になりました。
ハンドラを使用してファクトを設定し、もう1つは再起動を実行します。私は両方のパラメータを同じ通知のlistenパラメータに関連付けます。
さらに、リロードハンドラは、そのファクトが定義されていないかfalseに設定されている場合にのみリロードを実行します。
- name: Register restart Logstash
set_fact:
restart_notified: true
listen: "Restart Logstash"
- name: Restart Logstash service
systemd:
name: logstash
daemon_reload: true
state: restarted
listen: "Restart Logstash"
- name: Reload Logstash
systemd:
name: logstash
daemon_reload: true
state: reloaded
when: restart_notified is not defined or not restart_notified
私はその後、必要な場合に、Restart Logstash
またはReload Logstash
のいずれかを使用しない、一つだけが行われ、再起動するか、リロード、決して両方。
このようにして何かを再起動しなければならない状況に陥っているのは驚くべきことです。変更を加えていない場合は、再起動する必要がありますか? にが変更された場合、変更を行っているタスクがあれば通知を登録してください。いずれの場合においても
、あなたがそれをやりたいためには、最も簡単な解決策は、単に通知を調達するようです:
- debug:
msg: ensure that handler myhandler is notified
changed_when: "force_change|default('false')|bool"
notify: myhandler
これはmyhandler
の通知が登録されますと、以前ならば、それは問題ではありません。タスクは通知を登録したかどうかを示します。いずれの場合も、処理の最後にmyhandler
ハンドラがトリガされます。
あなたの答えをありがとう!あなたが取得していないものがあります。私は同じ再起動通知を送信するとは言いませんでした。実際には、私は "再起動の通知が送信されていない場合は、リロード通知を送信する" –