Skip to content
章节导航

replace 模块

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

常用参数

参数名是否必须参数类型默认值说明
pathstring指定要修改的文件
regexpstring指定一个正则表达式,可以是 python 正则
replacestring替换 regexp 参数匹配到的字符串
ownerstring修改文件或目录的所属用户,相当于 chown 命令修改
groupstring修改文件或目录的所属组名,相当于 chown 命令修改
modeany修改文件或目录的权限,与chmod命令不一致的是,replace模块的mode参数需要添加前导零
othersstring指定 file 模块的所有参数
encodingstring用于读取和写入文件的字符编码
beforestring如果指定,则仅替换/删除此匹配之前的内容,可以和after参数结合使用
afterstring如果指定,则仅替换/删除此匹配之后的内容,可以和before参数结合使用
attributesstring指定文件或目录的特殊属性,相当 chattr,默认使用=运算符,指定文件或目录的某项属性
backupbooleanfalse修改源文件前创建一个包含时间戳信息的备份文件

更多参数可以使用命令 ansible-doc -s replace 获取更多使用相关的文档或者查看官方文档

一些示例

用新主机名替换旧主机名

替换 /etc/hosts 文件中的 old.host.namenew.host.name

bash
ansible all -i src/inventory.yml -m replace -a "path=/etc/hosts regexp='(\s+)old\.host\.name(\s+.*)?$' replace='\1new.host.name\2'"