1.5.18:lineinfile 模块
官方文档:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/lineinfile_module.html#ansible-collections-ansible-builtin-lineinfile-module
lineinfile模块主要用于目标主机特定文件的单行文本验证/替换/删除。
1.5.18.1:常用参数
参数 | 说明 |
---|---|
path | 指定需要修改的目标文件。 别名:dest、destfile、name |
regexp | 指定用于匹配行的正则表达式。 当state=present时,被regexp匹配到的行将被line参数指定的内容替换(如果有多行被匹配到,只有最后一行会被替换); 当state=absent时,被regexp匹配到的行将被删除(被匹配的行都会被删除); 如果regexp未能匹配到,line参数指定的内容将被添加到insertbefore或insertafter参数指定的位置。 |
line | 指定需要插入或替换到目标文件中的行内容。 |
state | present|absent,默认为present;指定如何操作被匹配到的行(替换或删除)。 |
1.5.18.2:示例
将centos组的httpd.conf
配置文件中的Listen设为8080:
[root@ansible ~]# ansible centos -m lineinfile -a "path=/etc/httpd/conf/httpd.conf regexp='^Listen' line='Listen 8080'"
[root@node203 ~]# grep '^Listen' /etc/httpd/conf/httpd.conf
Listen 8080
删除centos组的/etc/fstab文件中以#开头的行:
[root@ansible ~]# ansible centos -m lineinfile -a "path=/etc/fstab state=absent regexp='^#'"
[root@node203 ~]# cat /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUID=fc2869e0-07b4-4138-9bda-0ccdbfea5cac /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0