ansible(13)--ansible的lineinfile模块
1. lineinfile模块
功能:修改或删除文件内容,与系统中的 sed
命令类似;
主要参数如下:
参数 | 说明 |
---|---|
path | 指定要操作的文件 |
regexp | 使用正则表达式匹配对应的行 |
line | 修改为新的内容 |
insertafter | 将文本插入到“指定的行”之后 |
insertbefore | 将文本插入到“指定的行”之前 |
state | 删除对应的文本时,需要state=absent |
backrefs | 1.支持后向引用、2.当未匹配到内容则不操作文件 |
backup | 是否在修改文件之前对文件进行备份 |
create | 当要操作的文件并不存在时,是否创建对应的文件 |
-
示例一:将
SELINUX
修改为disabled
状态;[root@xuzhichao ~]# ansible localhost -m lineinfile -a 'path=/etc/selinux/config regexp="^SELINUX" line="SELINUX=disabled"'
-
示例二:为被控主机添加一个
DNS
地址:223.5.5.5
:[root@xuzhichao ~]# ansible NginxWebs -m lineinfile -a 'path=/etc/sysconfig/network-scripts/ifcfg-eth1 line="DNS2=223.5.5.5" insertafter="DNS1"'
-
示例三:删除
/etc/sudoers
文件中%wheel
开头的行;[root@xuzhichao ~]# ansible localhost -m lineinfile -a 'path=/etc/sudoers regexp='^%wheel' state=absent'
-
示例四:修改默认
Apache
的端口为8080
,使用insertafter
;[root@xuzhichao ~]# ansible localhost -m lineinfile -a 'path=/etc/httpd/conf/httpd.conf regexp='^Listen' line="Listen 8080" insertafter='^#Listen''