ansible ----- copy lineinfile replace 模块

使用copy模块同步数据

使用lineinfile模块编辑文件

使用replace模块修改文件

1)使用copy模块同步数据

src:要复制到进程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用"/“来结尾,则只复制目录里的内容,如果没有使用”/"来结尾,则包含目录在内的整个内容全部复制,类似于rsync

dest:必选项。进程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录

backup:在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no

force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes

[root@ansible .ssh]# ansible all -m shell -a 'cat /etc/resolv.conf'   
//查看/etc/resolv.conf


[root@ansible .ssh]# ansible all -m copy -a 'src=/etc/resolv.conf dest=/etc/resolv.conf'   //复制本机的resolv.conf到其他主机


[root@ansible .ssh]# ansible all -m shell -a 'cat /etc/resolv.conf'     
//查看有nameserver 172.40.1.10
[root@ansible ~]# mkdir aa
[root@ansible ~]# ansible all -m copy -a 'src=/root/aa dest=/root/a.log'  
//复制本机的目录/root/aa到其他机器的/root/a.log,复制目录只能少数批量执行同步


[root@ansible ~]# ansible all -m shell -a 'ls -ld /root'

2)使用lineinfile模块编辑文件
以行为基础,整行修改(整行被替换掉)

[root@ansible ~]# ansible cache -m lineinfile \
-a  'path=/etc/sysconfig/network-scripts/ifcfg-eth0 \
regexp="^ONBOOT=" line="ONBOOT=\"no\""'

3)使用replace模块修改文件

修改文件的某一部分(替换一行中匹配的内容),以正则表达式匹配为基础修改

[root@ansible ~]# ansible cache -m replace  -a \
'path=/etc/sysconfig/network-scripts/ifcfg-eth0 \
regexp="^(ONBOOT=).*" replace="\1\"yes\""'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值