Skip to content

replace 模块 ​

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

常用参数 ​

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

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

一些示例 ​

用新主机名替换旧主机名 ​

替换 /etc/hosts 文件中的 old.host.name 为 new.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'"