Ansible 拷贝文件或目录
写法如下:
[root@localhost ~]$ ansible 192.168.119.134 -m copy -a "src=/etc/passwd dest=/tmp/passwd owner=root group=root mode=0644" # 拷贝本机文件到远程客户端 [root@localhost ~]$ ansible 192.168.119.134 -m copy -a "src=/etc/ansible dest=/tmp owner=root group=root mode=0755" # 拷贝本机目录到远程客户端
192.168.119.134 :指定远程客户端
-m copy :指定使用 copy 模块
src=/etc/passwd :指定本机源文件
dest=/tmp/passwd :指定拷贝到远程客户端的路径及文件名
owner=root :指定文件的属主,可选参数
group=root :指定文件的属组,可选参数
mode=0644 :指定文件的权限,可选参数
注意:
1. 拷贝文件时 src=/etc/passwd dest=/tmp/passwd :
① 如果远程客户端 /tmp/passwd 文件存在,则会更新成源文件
② 如果远程客户端 /tmp/passwd 文件不存在,则会直接拷贝源文件
③ 如果远程客户端存在 /tmp/passwd 目录,则会把源文件拷贝到 /tmp/passwd 目录下,最终文件是 /tmp/passwd/passwd
2. 拷贝目录时 src=/etc/ansible dest=/tmp :
① 如果远程客户端 /tmp/ansible 目录不存在,则会直接把源目录拷贝成这个目录名
② 如果远程客户端 /tmp/ansible 目录存在,则会把源目录拷贝到该目录下,最终目录是 /tmp/ansible/ansible