Ansible handlerの名前は同じにしないこと!

Ansibleで変更があった時のみ再起動したいときに使うのがhandlerである。

設定ファイルの反映などによく使われるのだが、自分でsambaとhttpdをセットアップしてhandlerを呼んでいた時になぜかhttpの設定が反映されない現象が発生した。

よくよく見るとroleを単独で実行する時は問題ないのだが、連続してやるとsambaのhandlerのみが有効となっていた。

firewalldの設定変更なのでfirewalld_restartという名称をつけていたのだが、この名称で実行したかを判断するので、同じ名前を別のroleでつけているとroleをまたいで実行された時に片方(先に記載したhandler)のみが実行されるようだ。

というわけできちんとhandlerの名前を分けたら無事httpのhandlerが動くようになった。

Ansibleはエラーにならないけど、実行時にはまるというのが多いように感じるな。

カテゴリー: Ansible パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload the CAPTCHA.