replace模块主要用于搜索匹配替换,类似于 linux 命令 sed

参数 必填 默认值 注解
dest yes 文件路径位置
regexp yes 正则表达搜索匹配内容
replace yes 用来替换的内容
mode no 对文件进行权限变更,如 mode=644,mode=g+x 等
group no 文件属组
owner no 文件属主
backup no backup=yes 修改前对文件进行备份
backrefs no

Ansible技术问答:http://linux.xyz/topic/Ansible

示例:

# 把 old.host.name 替换成 new.host.name
- replace: dest=/etc/hosts regexp='(\s+)old\.host\.name(\s+.*)?$' replace='\1new.host.name\2' owner=jdoe group=jdoe mode=644 backup=yes

# 把 Listen 80 和 NameVirtualHost 80 分别替换成 Listen 127.0.0.1:8080 和 Name
VirtualHost 127.0.0.1:8080
 - replace: dest=/etc/apache/ports regexp='^(NameVirtualHost|Listen)\s+80\s*$' replace='\1 127.0.0.1:8080''