AnsibleのcopyモジュールはAnsible実行マシンと対象マシンの間のコピーとなり、
リモートマシン内部でのコピーには未だ対応していないようだ。
unarchiveなどはcopy=noにしておくとリモート内部での操作となるのだが・・・
てなわけでシェルを使わざるをえないのだが、すでにファイルが存在する場合は実行して欲しくない。
なのでcreatesを使うとファイルがある場合はskipする。
(ただしあるかどうかだけで中身のチェックはしないので、厳密にはこの後diffを取るほうが良いかも?)
- name: catalina.properties配置 shell: creates=/var/tmp/hoge.txt cp ~/hoge.txt /var/tmp/hoge.txt