天天看点

【Ansible】 Ansible工具copy模块的使用

Copy模块简介:

参数介绍       

名称    必选  默认值  可选值  备注
backup  no  no  yes/no  在覆盖之前将原文件备份,备份文件包含时间信息
content  no      当用content代替src参数的时候,可以把文档的内容设置到特定的值
dest  yes      目标绝对路径。如果src是一个目录,dest也必须是一个目录。如果dest是不存在的路径,并且如果dest以/结尾或者src是目录,则dest被创建。如果src和dest是文件,如果dest的父目录不存在,任务将失败
follow  no  no  yes/no  是否遵循目的机器中的文件系统链接
force  no  yes  yes/no  当内容不同于源时,将替换远程文件。设置为no,则只有在目标不存在的情况下才会传输文件
group  no      设置文件/目录的所属组,将被馈送到chown
local_follow  no  yes  yes/no  是否遵循本地机器中的文件系统链接
mode  no      设置文件权限,模式实际上是八进制数字(如0644),少了前面的零可能会有意想不到的结果。从版本1.8开始,可以将模式指定为符号模式(例如u+rwx或u=rw,g=r,o=r)
owner  no      设置文件/目录的所属用户,将被馈送到chown
remote_src(2.0+)  no  no  yes/no  如果yes它会从目标机上搜索src文件
src  no      将本地路径复制到远程服务器; 可以是绝对路径或相对的。如果是一个目录,它将被递归地复制。如果路径以/结尾,则只有该目录下内容被复制到目的地,如果没有使用/来结尾,则包含目录在内的整个内容全部复制
unsafe_writes  no    yes/no  是否以不安全的方式进行,可能导致数据损坏
validate  no  None    复制前是否检验需要复制目的地的路径      

3 语句示例

# 将本地文件test1 copy 到远程主机
# src 本地目录或文件
# dest 远程主机或者文件 如果是目录会自动创建,如果是文件,上级路径不存在会报错
ansible webserver -m copy -a "src=test1.txt  dest=/home/python/zml/"


# 将本地文件test1 copy 到远程主机 ,并且文件名一样时,如果文件内容发生变化,会先将远程主机文件备份
ansible webserver -m copy -a "src=test1.txt backup=yes dest=/home/python/zml/" 


# 将content内容写入到远程主机的文件中
ansible webserver -m copy -a "content='123\n456\n789' dest=/home/python/zml/test2.txt"

# 设置文件读写权限 mode参数
ansible webserver -m copy -a "content='123\n456\n789' mode=0755 dest=/home/python/zml/test2.txt"