利用Ansible模块copy和fetch进行主机间文件的传递
场景:
java应用程序和Ansible不在同一台机子,要读取的文件又在另一台主机。
主机a不能保存文件,可以临时保存。
文件都在主机b上保存。
需求:
需要将文件从主机c传到主机b,再从主机b传到主机c,使用完之后删除。
方案:
文件传递可以使用linux的scp命令,但是在传递过程中需要输入密码,不现实;
最后选择使用Ansible的copy和fetch模块。
fetch模块
从远程到本地
- fetch: src: /tmp/somefile dest: /tmp/fetched
如果dest指定文件名则传过来的文件就会重命名。
copy模块
从本地到远程
- copy: src: /srv/myfiles/foo.conf dest: /etc/foo.conf mode: 0644
从主机c到主机b使用fetch,从主机b到主机c使用copy,只需要在Ansible的hosts文件中配置好用户名和密码。