Linux 在Ansible中的行尾添加单词
我已经尝试了很多lineinfle和replace示例,但是我无法让它工作 我有以下几行:Linux 在Ansible中的行尾添加单词,linux,ansible,debian,Linux,Ansible,Debian,我已经尝试了很多lineinfle和replace示例,但是我无法让它工作 我有以下几行: deb-src http://httpredir.debian.org/debian buster main deb http://security.debian.org/debian-security buster/updates main deb-src http://security.debian.org/debian-security buster/updates main 我希望他们看起来像
deb-src http://httpredir.debian.org/debian buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
我希望他们看起来像这样:
deb-src http://httpredir.debian.org/debian buster main contrib
deb http://security.debian.org/debian-security buster/updates main contrib
deb-src http://security.debian.org/debian-security buster/updates main contrib
我试着用Ansible这样做
- name: Add contrib repository
lineinfile:
dest: /etc/apt/sources.list
backup: yes
state: present
regexp: '^(deb (.*)$)'
backrefs: yes
line: '\1 contrib'
check_mode: no
哪种方式有效,但在第二次运行后,它显示为,例如
deb http://security.debian.org/debian-security buster/updates main contrib contrib
因此,每次跑步时,它都会不断添加单词
显然,这些行并不像在每个系统上那样,但它们确实是从deb或deb src开始的
谢谢 -名称:添加contrib存储库
- name: Add contrib repository
replace:
dest: /etc/apt/sources.list
regexp: '^(deb.+)(?<! contrib)$'
replace: '\1 contrib'
替换:
目的地:/etc/apt/sources.list
regexp:“^(deb.+)(?lineinfle:当您只想更改文件中的一行时,此选项非常有用。
尝试使用replace
module不检查contrib一词是否在行的其他位置