Ansibleでリモート先のファイルのdiffをとりたい
ごきげんよう、エンジニア2年目のさくーんです。
早速ですが、現在Ansibleをたくさん触ったので議事録として残そうと思います。
リモート先のファイルの比較をしたい
- hosts : host_name
tasks :
- name : diffしてみる
shell : diff /etc/hosts /home/・・・/host_backup/hosts
register : diff_result
failed_when : diff_result.rc not in [0,1]
- name : 判定
debug :
msg : 'backup success'
when : diff_result.rc == 0
- name : 判定
debug :
msg : 'backup failed'
when : diff_result.rc == 1
failed_whenがないとshellの行でエラーとなり停止してしまう。。。
ignore_errorsを使うとFaildになりつつも次にすすんだ。
failed_whenは、failed_whenのあとに続く条件に引っかかった時にFailedにする。
例えば、コマンドの戻り値が異常なときをキャッチしてplaybookの実行を止めるときにつかうそうだ。
今回は、こちら方がやりたいことを実現できそうでしたので、こちらを使用しよう。
rc -> リターンコードってこと
diffコマンドを知ればわかることみたいだね
差分がなし -> 0
差分が有れば -> 1
失敗したら -> 2
なるほど。なんとなくわかったきがしたので、今回はここでおしまい。
「Ansibleを使用して、リモート先のファイル同士を比較するための方法」ってことでした。