Ansibleで変更があった時のみ再起動したいときに使うのがhandlerである。
設定ファイルの反映などによく使われるのだが、自分でsambaとhttpdをセットアップしてhandlerを呼んでいた時になぜかhttpの設定が反映されない現象が発生した。
よくよく見るとroleを単独で実行する時は問題ないのだが、連続してやるとsambaのhandlerのみが有効となっていた。
firewalldの設定変更なのでfirewalld_restartという名称をつけていたのだが、この名称で実行したかを判断するので、同じ名前を別のroleでつけているとroleをまたいで実行された時に片方(先に記載したhandler)のみが実行されるようだ。
というわけできちんとhandlerの名前を分けたら無事httpのhandlerが動くようになった。
Ansibleはエラーにならないけど、実行時にはまるというのが多いように感じるな。