ansible Replace 模块

文章目录

Replace 模块

该模块有点类似于sed命令,主要也是基于正则进行匹配和替换

常用参数:

参数说明
path必须参数,指定要修改的文件,2.3版本之前,这个参数叫dest、destfile、name;现在这三个名称是path参数的别名
regexp必须参数,指定一个正则表达式,可以是python正则
replace替换regexp参数匹配到的字符串,
owner结果文件或目录的所属用户名,相当于chown命令修改
group结果文件或目录的所属组名,相当于chown命令修改
mode结果文件或目录的权限,与chmod命令不一致的是,replace模块的mode参数需要添加前导零,以便ansible的YAML解析器知道它是八进制;1.8版本后可以设置为符号模式(u+rwx或u=rw),2.6版本后可以是特殊字符串(preserve),当设置为’preserve’时,文件将被赋予与源文件相同的权限。
others可以指定 file 模块的所有参数
encoding用于读取和写入文件的字符编码
before如果指定,则仅替换/删除此匹配之前的内容,可以和after参数结合使用
after如果指定,则仅替换/删除此匹配之后的内容,可以和before参数结合使用
attributes结果文件或目录的特殊属性,相当chattr,默认使用=运算符,指定文件或目录的某项属性
backup修改源文件前创建一个包含时间戳信息的备份文件

示例:

  • 修改匹配到的内容
# 文件内容为 aaa.bbb.fff.vvv.fff.ggg 匹配 fff 并修改为 qqq
[root@master ~]# ansible dong -m replace -a "path=/root/test regexp='fff' replace='qqq'"
  • 将文件内容注释
# 匹配到任意一个或多个开头的行增加注释
[root@master ~]# ansible dong -m replace -a "path=/root/passwd regexp='^(.*)' replace='#\1'"
# 取消注释
[root@master ~]# ansible dong -m replace -a "path=/root/passwd regexp='^#(.*)' replace='\1'"

# 匹配以 p 开头的后面有一个或者多个字符的行,并在前面添加 # 注释
[root@master ~]# ansible dong -m replace -a "path=/root/passwd regexp='^(p.*)' replace='#\1'"

 
 
 
 
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值