ansible copy 模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kaikai136412162/article/details/85283924

copy模块

backup : 在覆盖之前源文件备份,备份文件包含时间信息,有两个选项 yes | no
content :用于替代"src" ,可以直接指定文件的值
dest:必选项,要将文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么路径必须是个目录
directory_mode:递归的设置目录的权限,默认为系统默认权限
force:如果目标主机包含该文件,但内容不同,如果设置成yes,则强制覆盖,如果no,则智邮当目标主机的目标位置不存在该文件时,才复制,默认yes

others:所有的file模块里的必选项都可以在这里使用
src:要复制到远程的主机文件在本地的地址,可以是绝对路径,也可以是相对路径,如果路径是一个目录,将递归复制,在这种情况下,如果路径使用/结尾,则复制路径里的内容,如果没有/ 则复制包含目录在内的整个内容全部复制,类似于rsync
 

测试用例

# copy文件或者目录  
ansible -i ansiblepy.py test22 -m copy -a "src=/root/ansibletest dest=/root/"

# 在目录下创建文件并写入内容dest 参数对应的值必须是一个文件,而不能是一个路径。 
ansible -i ansiblepy.py test22 -m copy -a 'content="aaa\nbbb\n" dest=/testdir/testfile1'

# 将 ansible 主机中 /testdir/copytest 文件复制到远程主机的 /testdir 目录中时,如果远程主机中已经存在 /testdir/copytest 文件,并且文件内容与 ansible 主机中的 copytest 文件的内容不一致,则不执行拷贝操作,远程主机中的 /testdir/copytest 文件内容不会被改变。
ansible -i ansiblepy.py test22 -m copy -a 'src=/root/testdir/ttt dest=/root/testdir/ force=no'

# 将 ansible 主机中 /testdir/copytest 文件复制到远程主机的 /testdir 目录中时,如果远程主机中已经存在 /testdir/copytest 文件,并且文件内容与 ansible 主机中的 /testdir/copytest 文件的内容不一致,会执行拷贝操作,但是在执行拷贝操作之前,会将远程主机中的原文件重命名,以作备份,然后再进行拷贝操作
ansible -i ansiblepy.py test22 -m copy -a 'src=/root/testdir/ttt dest=/root/testdir/ backup=yes'

# 拷贝文件时,指定文件的属主,需要注意,远程主机上必须存在对应的用户。
ansible -i ansiblepy.py test11 -m copy -a 'src=/root/testdir/ttt dest=/root/ owner=root'

# 拷贝文件时,指定文件的权限。
ansible -i ansiblepy.py test22 -m copy -a 'src=/root/testdir/ttt dest=/root/ owner=root backup=yes mode=777'

猜你喜欢

转载自blog.csdn.net/kaikai136412162/article/details/85283924