Я не понимаю, как работает lineinfile, я использую:

    - name: "configure"
      lineinfile:
        path: /etc/apt/apt.conf.d/50unattended-upgrades
        regexp: '^\/\/      "\${distro_id}:\${distro_codename}-updates";'
        line: '      "${distro_id}:${distro_codename}-updates";'
        state: present

И я ожидаю, что строка в файле будет без комментариев:

//      "${distro_id}:${distro_codename}-updates";

Вместо этого эта строка остается такой, как есть, но в конце файла я вижу:

      "${distro_id}:${distro_codename}-updates";

Так что "совпадение" происходит, но почему вместо замены появляется новая строка в конце файла?

1
user1244932 26 Апр 2020 в 21:03

2 ответа

Лучший ответ

Должна быть другая проблема. Код работает как положено

shell> diff 50unattended-upgrades 50unattended-upgrades.orig 
1c1
<       "${distro_id}:${distro_codename}-updates";
---
> //      "${distro_id}:${distro_codename}-updates";
1
Vladimir Botka 26 Апр 2020 в 20:42