ansible批量自动化管理工具-copy模块专题(二)

预热:

使用ansible及其copy模块需要提前注意的概念:

A) 需要明确ansible管理管端,执行的用户
   root:   拥有所有权限
   普通用户:只拥有本身的权限
B)使用copy模块,涉及到copy master数据到remote,必须保证
   ansible执行者,对这些ansible机器中数据文件,具有w
  (可copy)权限
C)客户端(ansible被控端),必须确认client用户,对远程机器
  具有对应权限
  <client用户怎么确定???>
  1)/etc/ansible/hosts中ansible_ssh_user设置
  2)名字行执行:ansible web -m shell -a "xx" -u client用户

ansible copy模块使用:

copy模块参数说明:

参数 说明
src 被复制到远程主机的本地对象文件或者文件夹,可以是绝对路径,也可以是相对路径
dest 被复制到远程主机的本地对象文件或者文件夹
mode 复制对象的设定权限
owner 复制对象的设定属主
group 复制对象的设定属组
backup 在文件存在的时候可以选择覆盖之前,将源文件备份.设定值:yes/no 缺省为yes
force 是否强制覆盖.设定值:yes/no 缺省为no

复制文件到远程机器,并设置“属主/属组/权限”

ansible all -i hosts -m copy -a "src=./list dest=/root/ owner=china group=mockuser mode=0777"

复制文件到远程机器,并备份:

ansible all -i hosts  -m copy -a "src=./list。file dest=/tmp backup=yes"
【参数说明】
 hosts:类似/etc/ansible/hosts
 backup=yes表示:远程机器如果存在旧的list.file那么先备份原来的

给远程机器创建文件,并写入数据:


# 在目录下创建文件并写入内容dest 参数对应的值必须是一个文件,而不能是一个路径。

ansible -i hosts all -m copy -a 'content="aaa\nbbb\n" dest=/tmp/my.file'

猜你喜欢

转载自blog.csdn.net/weixin_43010385/article/details/113048424
今日推荐