copy模塊用于復制文件到遠程主機
## 1. 模塊相關選項
### backup:
> 在覆蓋之前,將源文件備份,備份文件包含時間信息。有兩個選項值:yes|no
### content:
> 用于替代“src”,可以直接設定指定文件的值
### dest:
> 必選項。要將源文件復制到的遠程主機的絕對路徑,如果源文件是一個目錄,那么該路徑也必須是個目錄
### directory_mode:
> 遞歸設定目錄的權限,默認為系統默認權限
### force:
> 如果目標主機包含該文件,但內容不同,如果設置為yes,則強制覆蓋,如果為no,則只有當目標主機的目標位置不存在該文件時,才復制。默認為yes
### others:
> 所有的file模塊里的選項都可以在這里使用
### src:
> 被復制到遠程主機的本地文件,可以是絕對路徑,也可以是相對路徑。
>
> 如果路徑是一個目錄,它將遞歸復制。在這種情況下,如果路徑使用“/”來結尾,則只復制目錄里的內容,如果沒有使用“/”來結尾,則包含目錄在內的整個內容全部復制,類似于rsync。
## 2、實例
1、拷貝前備份
```
# ansible test -m copy -a "src=test.sh backup=yes dest=/root"
172.20.21.121 | SUCCESS => {
"backup_file": "/root/test.sh.4315.2018-01-12@13:35:35~",
"changed": true,
"checksum": "e989084b3f4610a41811c5ea280b14f7c5e855f5",
"dest": "/root/test.sh",
"gid": 0,
"group": "root",
"md5sum": "7c211ce4c7941a5bb064e77d69e3d9ff",
"mode": "0755",
"owner": "root",
"secontext": "unconfined_u:object_r:admin_home_t:s0",
"size": 23,
"src": "/root/.ansible/tmp/ansible-tmp-1515735334.86-21848883747071/source",
"state": "file",
"uid": 0
}
```
2、設置屬性
設置用戶,用戶組,訪問權限
```
ansible test -m copy -a "src=test.sh dest=/root dest=/tmp owner=liuhao group=liuhao mode=0644"
172.20.21.121 | SUCCESS => {
"changed": true,
"checksum": "e989084b3f4610a41811c5ea280b14f7c5e855f5",
"dest": "/tmp/test.sh",
"gid": 1000,
"group": "liuhao",
"md5sum": "7c211ce4c7941a5bb064e77d69e3d9ff",
"mode": "0644",
"owner": "liuhao",
"secontext": "unconfined_u:object_r:admin_home_t:s0",
"size": 23,
"src": "/root/.ansible/tmp/ansible-tmp-1515735466.22-33633697447932/source",
"state": "file",
"uid": 1000
}
```
3、content參數直接指定文件的內容(代替src)
在遠程主機上創建/root/liuhaotest文件,利用content指定文件內容為
'liuhao \n test\
```
[root@centos7 ~]# ansible test -m copy -a "content='liuhao \n test\n' dest=/root/liuhaotest"
172.20.21.121 | SUCCESS => {
"changed": true,
"checksum": "bd3aa5bf19112271f30c07be425f9a5c08463568",
"dest": "/root/liuhaotest",
"gid": 0,
"group": "root",
"md5sum": "7585dc638fd8e219c453c3b1330c7e14",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:admin_home_t:s0",
"size": 14,
"src": "/root/.ansible/tmp/ansible-tmp-1515735713.37-60072089981042/source",
"state": "file",
"uid": 0
}
```
3、src是目錄時
源目錄以/結尾,只拷貝了目錄下的內容,且目標必須是目錄:
```
[root@centos7 test]# ansible test -m copy -a "src=/root/test/ dest=/tmp/"
172.20.21.121 | SUCCESS => {
"changed": true,
"checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"dest": "/tmp/1",
"gid": 0,
"group": "root",
"md5sum": "d41d8cd98f00b204e9800998ecf8427e",
"mode": "0644",
"owner": "root",
"secontext": "unconfined_u:object_r:admin_home_t:s0",
"size": 0,
"src": "/root/.ansible/tmp/ansible-tmp-1515736521.16-258766767883601/source",
"state": "file",
"uid": 0
}
```
- Linux
- 高級
- 殺毒
- 記一次中毒事件
- clamav查毒軟件
- 處理挖礦病毒
- 定時任務
- kill
- chattr文件保護
- 運行級別
- Linux啟動
- 文件加密
- ssh免密登錄
- .ssh
- 問題
- 腳本
- 阿里云域名解析
- yum源
- 時間同步
- keepalived實現高可用
- dos字符與unix字符
- 大文件上傳
- 基礎
- proc目錄
- 設置宋體
- 基礎命令_01
- 基礎命令_02
- SELinux
- 文件描述符
- 基礎命令_03
- awk
- 系統日志
- date命令
- bc命令
- lsof
- vim快捷鍵
- shell
- 循環控制
- expr
- 執行腳本的方式
- declare
- shell腳本
- 控制啟停腳本
- 數值計算
- centos
- 配置網絡
- 環境
- 灰度環境
- ansible
- 模塊
- 語法
- file模塊
- setup模塊
- ping模塊
- copy模塊
- command模塊
- shell模塊
- service模塊
- cron模塊
- yum模塊
- user 模塊
- group模塊
- 指定用戶
- playbook
- 實例
- ansible安裝
- Jenkins
- shell部署
- 導入已有項目的配置
- 執行shell
- tungsten數據同步
- 防火墻
- netfilter