Ansibleでファイルのバックアップを作成する
Ansibleでファイルをバックアップしたいことがある。
失敗することを考えるとバックアップは一度だけ実行したい。
シェル上ならばcpするときに -n
を指定すれば2回め移行は上書きされないことを保証できる。
-n, --no-clobber do not overwrite an existing file (overrides a previous -i option)
Ansibleでも同じようにshellモジュールで実行すればよいという話もあるが、
可能な限りshellを避けるべきだと思う。 --diff
で差分でないし。
そこでマニュアルとにらめっこして考えだしたのが以下となる。 http://docs.ansible.com/ansible/latest/copy_module.html
copy: src: /path/to/src_file dest: /path/to/dst_file remote_src: yes force: no
remote
でサーバ上のファイルを指定してバックアップできる。
force
で上書きしないようにできる。