Ansibleでファイルのコピー
ansibleで構築したサーバ上でファイルのコピーを行おうと思って、コマンドを探したら「copy」というものがあったので、使ってみた。
sample.yml
- copy: src=/srv/myfiles/foo.conf dest=/etc/foo.conf owner=foo group=foo mode="u=rw,g=r,o=r"
実行したところ、/srv/myfiles/foo.conf not foundと表示され、ファイルは確かにあるのになーと小一時間考えていたところ、
エラーの原因
どうやらcopyコマンドはローカル(src)のファイルをリモート(dest)にコピーするコマンドだったので、「ローカルにそんなファイルはないよ」と怒っていたようだ。
もっとちゃんとドキュメントを読んでおくべきでした。。。
解決策
今回やりたかったのは、リモート上でファイルのコピーをしたいので、
そのようなコマンドを探していたが、見つからず。。。
結局、以下のようにして解決した。
sample.yml
- command: cp -p /srv/myfiles/foo.conf /etc/foo.conf
まとめ
copyコマンドはローカルのファイルをリモートにコピーするときに使う
リモート上でファイルのコピーをする際は、commandで行う。