• 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

     
     
     
     
     

  • 相关阅读:
    智能恒等于推荐系统
    .NET依赖注入之一个接口多个实现
    【论文解读】| 通过大语言模型实现通用模糊测试
    java计算机毕业设计智能停车场管理系统源程序+mysql+系统+lw文档+远程调试
    Docker基础操作命令演示
    寻找左下角的值leetcode题解513-前序遍历递归法
    Spring RequestContextHolder
    C++ Reference: Standard C++ Library reference: C Library: cwctype: iswblank
    vite的搭建与使用
    第一节 vue3 router内置类型有哪些
  • 原文地址:https://blog.csdn.net/D1179869625/article/details/126195771