• 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'"
    
    • 1
    • 2
    • 将文件内容注释
    # 匹配到任意一个或多个开头的行增加注释
    [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'"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

     
     
     
     
     

  • 相关阅读:
    什么是网络爬虫?
    Python中连接池的分析和应用
    汇编原理(二)寄存器——CPU工作原理
    什么软件可以查月经周期,检测月经周期的软件
    go语言 go-redis watch实例
    Android13 大屏设备底部显示TaskBar并NavagatonBar居右
    使用 Vue3 构建 Web Components
    高效管理文件夹名称:如何批量修改指定多样化的文件夹名称
    前端开发:在JS中以…为前缀的用法汇总
    Flowable 外置的 HTML 表单怎么玩?
  • 原文地址:https://blog.csdn.net/D1179869625/article/details/126195771