添加URL
相关文章推荐
15328076128  ·  Ansible output · GitHub·  2 年前    · 
manneting  ·  How do you replace ...·  2 年前    · 
1043605696  ·  14-Ansible常用模块-replace ...·  1 年前    · 
1043605696  ·  14-Ansible常用模块-replace ...·  1 年前    · 

replace 模块可以根据我们指定的正则表达式替换文件中的字符串,文件中所有被匹配到的字符串都会被替换。

二、常用参数

path参数 : 必须参数,指定要操作的文件,2.3版本之前,只能使用 dest, destfile, name指定要操作的文件,2.4版本中,仍然可以使用这些参数名,这些参数名作为 path 参数的别名使用。

regexp参数 : 必须参数,指定一个 python 正则表达式,文件中与正则匹配的字符串将会被替换。

replace参数 : 指定最终要替换成的字符串。

backup参数 : 是否在修改文件之前对文件进行备份,最好设置为yes。

把 ansible-demo3 主机中的 /testdir/test 文件中的所有 ABC 替换成 abc。

[root@ansible-manager ~]# ansible ansible-demo3 -m replace -a 'path=/testdir/test regexp="ABC" replace=abc'
ansible-demo3 | SUCCESS => {
    "changed": true, 
    "msg": "2 replacements made"

返回信息显示,替换了2个地方。

把 ansible-demo3 主机中的 /testdir/test 文件中的所有 ABC 替换成 abc,但是在操作文件之前进行备份。

ansible ansible-demo3 -m replace -a 'path=/testdir/test regexp="ABC" replace=abc backup=yes'

本节介绍了 Ansible 常用模块之 replace 模块,并举例说明如何使用,下节我们介绍 cron 模块。

这里的命令常用参数介绍及示例,主要摘抄自下面文档内容,有部分改动,在这里对原作者深表感谢!

参考文档:
http://www.zsythink.net/archives/2560

Ansible常用的用于替换的模块为replace和lineinfile,进行替换的场景在自动化运维中是一个非常常见的场景,比如设定OS的selinux,再比如设定docker服务的service文件(当然这种情况更多是template模块的应用场景),在Ansible中甚至可以直接使用shell模块结合sed -i来事先替换的效果,但是考虑到可读性性和可维护性等多方面因素,使用Ansible的替换模块是一个不错的选择。 APP打开 script 模块可以帮助我们在远程主机上执行 ansible 管理主机上的脚本,也就是说,脚本一直存在于 ansible 管理主机本地,不需要手动拷贝到远程主机后再执行。 学习此模块之前,请先学习 command 模块。 二、常用参数 free_form参数 :必须参数,指定需要执行的脚本,脚本位于 ansible 管理主机本地,并没有具体的一个参数名叫 free_form... APP打开 二、常用参数 paths参数 :必须参数,指定在哪个目录中查找文件,可以指定多个路径,路径间用逗号隔开,此参数有别名,使用别名 path 或者别名 name 可以代替 paths。 recurse参数 : 默认情况下,只会在指定的目录中查找文件,也就是说,如果目录中还包含目录,ansib... APP打开 [root@node-1 test]# ansible-playbook hba_card_check.yml PLAY [compute[0]] ******************************************************************************************************* Tuesday 12 March 201... APP打开 ansible-inode-listall-mshell-a"foriin\`psaux|grepproc_nodemanager|grep-vgrep|awk'{print\$2}'\`;doecho\$i;... APP打开 ansible 中想执行lvm vgs | grep ceph | awk '{print $1}' | xargs -I {} lvm vgremove -f {} 命令 排查结果发现 lvm vgs | grep ceph | awk '{print $1}' 中awk '{print $1}' 失效 最终发现是 $ 符出了问题,添加转义字符 \ 后,ok ansible a... APP打开