Ansible replace 模块实战指南
在自动化运维中,批量修改配置文件是常见需求。Ansible 的 replace 模块能基于正则表达式精准替换文件内容,比简单的字符串替换更灵活。
核心参数说明
使用这个模块时,有几个关键参数需要留意:
- path:必填项。告诉 Ansible 你要改哪个文件。旧版本里可能见过 dest 或 name,新版本它们都作为 path 的别名存在,统一用 path 更规范。
- regexp:必填的正则表达式。只有匹配上的部分才会被处理,这给了你很大的控制空间。
- replace:替换后的新字符串。
- backup:是否备份原文件。强烈建议设为 yes,毕竟生产环境改配置,留个后手总没错。
命令行实操示例
假设我们要把 ansible-demo3 主机上 /testdir/test 文件里的所有 ABC 改成小写 abc。直接在终端执行如下命令即可:
ansible ansible-demo3 -m replace -a 'path=/testdir/test regexp="ABC" replace=abc'
执行成功后会返回 changed: true,并提示具体替换了多少处。比如输出显示 2 replacements made,说明有两处匹配到了。
如果担心直接覆盖有风险,可以加上备份参数:
ansible ansible-demo3 -m replace -a 'path=/testdir/test regexp="ABC" replace=abc backup=yes'
这样原文件会在修改前自动备份一份(通常带 .bak 后缀),心里更有底。
注意事项
正则表达式里的特殊字符要注意转义,否则可能导致匹配失败。另外,虽然这个模块很强大,但涉及系统配置文件的修改,务必先在测试环境验证过再上线。

