場景:
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文件中配置好用戶名和密碼。