copy模塊的作用就是拷貝文件,將ansible主機上的文件拷貝到遠程主機中。
src參數 :用於指定需要copy的文件或目錄
dest參數 :用於指定文件將被拷貝到遠程主機的哪個目錄中,dest為必須參數
content參數 :當不使用src指定拷貝的文件時,可以使用content直接指定文件內容,src與content兩個參數必有其一,否則會報錯。
force參數 : 當遠程主機的目標路徑中已經存在同名文件,並且與ansible主機中的文件內容不同時,是否強制覆蓋,可選值有yes和no,默認值為yes,表示覆蓋,如果設置為no,則不會執行覆蓋拷貝操作,遠程主機中的文件保持不變。
backup參數 : 當遠程主機的目標路徑中已經存在同名文件,並且與ansible主機中的文件內容不同時,是否對遠程主機的文件進行備份,可選值有yes和no,當設置為yes時,會先備份遠程主機中的文件,然后再將ansible主機中的文件拷貝到遠程主機。
owner參數 : 指定文件拷貝到遠程主機后的屬主,但是遠程主機上必須有對應的用戶,否則會報錯。
group參數 : 指定文件拷貝到遠程主機后的屬組,但是遠程主機上必須有對應的組,否則會報錯。
mode參數 : 指定文件拷貝到遠程主機后的權限,如果你想將權限設置為"rw-r--r--",則可以使用mode=0644表示,如果你想要在user對應的權限位上添加執行權限,則可以使用mode=u+x表示
拷貝單個文件到目標服務器上
[root@Jenkins copymodule]# cat copy.yml
---
- hosts: all
remote_user: root
gather_facts: false
tasks:
- name: "復制主機上的文件到目標服務器上"
copy:
src: "/root/ansible/luyan/copymodule/copytest1.txt"
dest: "/opt/copymodule"
owner: root
group: root
mode: 755
拷貝多個文件到目標服務器上
[root@Jenkins copymodule]# cat copyduogewenjian.yml
---
- hosts: all
remote_user: root
gather_facts: false
tasks:
- name: "復制主機上的文件到目標服務器上"
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: root
group: root
mode: 755
with_items:
- {src: "/root/ansible/luyan/copymodule/copytest1.txt", dest: "/opt/copymodule" }
- {src: "/root/ansible/luyan/copymodule/copytest2.txt", dest: "/opt/copymodule" }
- {src: "/root/ansible/luyan/copymodule/copytest3.txt", dest: "/opt/copymodule" }