Попытка использовать модуль замены ansible для обновления нескольких строк в файле и оставаться идемпотентным

Код у меня не работает:

---
- hosts: '{{ target }}'
  tasks:
    - name: Search for strings in file.
      replace:
        path: /home/jay/tasks.conf
        regexp: '(^\s*$)# End of file'
        replace: |-

          make_bed
          brush_teeth
          # End of file

Единственная константа, которую я знаю, это то, что нижняя часть текущего файла представляет собой пустую строку, за которой следует «# Конец файла».

Я пытаюсь заменить этот блок, чтобы он выглядел следующим образом:

<blank line>
make_bed
brush_teeth
# End of file

Он становится идемпотентным, потому что, как только это будет сделано, он не будет соответствовать пустой строке, за которой следует «# Конец файла», если я снова запущу сценарий.

Я не уверен, виновато ли мое регулярное выражение или я делаю что-то еще неправильно.


person user3299633    schedule 20.03.2020    source источник


Ответы (1)


Решение найдено. Пожалуйста, закройте вопрос.

Необходимо следующее:

regexp: '(^\s*$)\n^(# End of file)'
person user3299633    schedule 20.03.2020