[Ansible]lineinfile单行替换修改
官网
在被管理的节点上用正则对目标文件的一行内容修改删除
在一个文件中匹配的多行统一处理 参考replace
文件中多行处理blockinline
- path 目标文件路径
- state absent删除
- regexp 正则匹配 最后一行被替换
- line 要在文件中插入替换的行
- create 文件不存在是,是否要创建文件内容 yes | no
[root@ceph3 tmp]# cat a.repo
......
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source ← 替换
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
add ← 删除掉
- 删除匹配行
ansible webservers -m lineinfile -a "path=/tmp/a.repo regexp='^add' state=absent"
- 替换某一行
ansible webservers -m lineinfile -a "path=/tmp/a.repo regexp='^name=Extra' line='EXTRA'"
[epel-source]
EXTRA
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1