技術系

【Ansible】linuxのコマンド実行結果を元に処理をわけたい

投稿日:


nfsをマウントさせるときにサーバ上のmountのバージョンが古いとansibleのmountモジュールが使い物にならなかったのです。
ならば、commandモジュールでmountコマンドを叩こうとしたのですが、既にマウントされているときに実行してしまうとエラーになるのです。
(既にマウントされてるよって)

スポンサーリンク

というわけでmountコマンドを叩く前にサーバ上のマウントポイントがマウントされているかを、
チェックしてマウントされてたら何もしない、されてなかったらマウントするみたいな感じのケースで書きますが、
応用はどうとでも聞くと思います。
※冪等性云々の話をするとcommandモジュールとかは使いたくないのですが致し方ないときだってあるのです。

mountコマンドの結果をレジスターに格納

以降このresultの変数の中をみてく形です。

実際にmountするtask

when で実行するかを判断させてます。
最初に格納したresultのstdoutの中にmountコマンドの実行結果が格納されているので、
in を使ってマウントポイントの文字列が含まれてるかをチェックしてます。

実際resultの中には色々な情報が入っているので必要に応じてdebugしてそのときに適したところを使って条件分岐できると思います。

いや、もちろんansibleにmountモジュールがあるんだからそれを使いたいのは山々なんですけどね。
どうしてもcommandに頼らないといけないときだってあると思うのでそんなときのtipsになっていただければと。

参考になるURL
http://qiita.com/szk3/items/29e827f90a543c764a5e(新規タブで開きます)

今日の一言

ファイルシステムの共有って便利ですよね。


スポンサードリンク

スポンサードリンク

-技術系

Copyright© chat-blog , 2017 AllRights Reserved.