Linux 在Ansible中的行尾添加单词

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 我希望他们看起来像

我已经尝试了很多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 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一词是否在行的其他位置