[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

END

原文地址:https://www.cnblogs.com/leoshi/p/13669848.html