今回は久しぶりにAnsibleのお話ですが、copyモジュールは大変便利!ローカル上のファイル丸ごとコピー!nginxのconfファイルとか変更する場合、書き直してansible playbookするだけですからね。あとはsshの鍵とか(あまり良くないですが。。)ちょいと例を出すので参考にして頂ければと。
前回のansibleブログはfileモジュールの話でした。
■copy module nginx.conf
実際にnginxのバーチャル設定などは全てこんな感じで管理してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
--- - name: copy nginx-conf copy: src: "{{ item.src }}" dest: "/etc/nginx/{{ item.dest }}" backup: no owner: root group: root with_items: - { src: roles/nginx/files/nginx.conf, dest: . } - { src: roles/nginx/files/conf.d/default.conf, dest: conf.d/ } - { src: roles/nginx/files/conf.d/adachin.conf, dest: conf.d/adachin.conf } - { src: roles/nginx/files/conf.d/dev.conf, dest: conf.d/dev.conf } or ----- - name: copy sysctl.conf copy: src=roles/keepalived/files/sysctl.conf dest=/etc/sysctl.conf owner=root group=root mode=0644 ひとつくらいならこれでOK |
■まとめ
confファイル以外にいろいろ応用できる気がする・・・
参考:http://docs.ansible.com/ansible/copy_module.html
2件のコメント
匿名エンジニア · 2016/08/18 9:38 pm
情報ありがとうございます。
ansible-playbook実行で構文エラーになったのですが、copyモジュールのオプションを一階層さげると実行できました。
ただ、with_itemsでitemがないとなり実行が失敗しました。
—- 実行失敗メッセージ —-
fatal: [hostname]: FAILED! => {“failed”: true, “msg”: “‘item’ is undefined”}
—-環境情報—-
CentOS 2.6.32-573.el6.x86_64
ansible 2.0.2.0
Python 2.6.6
Adachin · 2016/08/18 9:56 pm
コメントありがとうございます!
>fatal: [hostname]: FAILED! => {“failed”: true, “msg”: “‘item’ is undefined”}
このエラーはなんとも。。。
>ただ、with_itemsでitemがないとなり実行が失敗しました。
ここらへんは僕のブログの例みたいな感じで実行しました?
ansibleやPythonを最新バージョンにあげてみるとかどうですかね〜。