かべぎわブログ

技術的なことについてかけたらいいな…

Ansibleでshellをつかってもchanged_whenで絶対にchangedにしない

概要

Ansibleでshellcommandモジュールを利用すると、結果が常にchangedになってしまいます。
なんか気持ち悪いなーということで絶対にchangedにしない方法です。

playbook例

changed_when: Falseとすることで絶対にchangedにはならなくなります。

実行例

実行するとこんなかんじ。

$  ansible-playbook -i ansible_hosts always_ok.yml


PLAY [localhost] *****************************************************************************************************************************

TASK [ls] ************************************************************************************************************************************
ok: [localhost]

PLAY RECAP ***********************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0   

おわりに

Ansibleの冪等性維持のためにcommandとかshellとかはあんまりつかわないほうがいいと思うんだけれども使わなきゃいけなくなったかつなんかごまかしたいときにおすすめの記述方法です。

だれにおすすめかはわからないけど。


Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス

Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス