Yaml — Ansible: Используйте Переменную Inventory_Hostname В Модуле Lineinfile.

  • Автор темы Topdan
  • Обновлено
  • 20, Oct 2024
  • #1

Я использую Ansible 2.7.9

 
 
 [...]
The offending line appears to be:

path: "etc/path/to/config/{{ inventory_hostname }}.conf"

regexp: "^{{ inventory_hostname | replace('.', '\.') }} = /path/to/a/directory"

^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes.  Always quote template expression brackets when they
start a value. For instance:
[...]
 

и у меня возникли проблемы с определением регулярного выражения в модуле lineinfile. В моем файле есть следующая строка: - name: Remove LE webroot definition lineinfile: path: "/etc/path/to/config/{{ inventory_hostname }}.conf" regexp: "^{{ inventory_hostname | replace('.', '\.') }} = /path/to/a/directory" state: absent . The task in my playbook looks like this:

replace

Я хочу удалить эту строку. Поскольку {{ Inventory_hostname }} содержит точки, я пытаюсь избежать тех, у которых есть

host.example.com = /path/to/a/directory

Когда я выполняю книгу воспроизведения, возникает следующая ошибка:

Как видите, я использую двойные кавычки, и все примеры, которые я нашел, используют этот синтаксис. Что я здесь делаю не так? Спасибо за любую помощь.

Topdan


Рег
13 Sep, 2013

Тем
72

Постов
222

Баллов
612
  • 25, Oct 2024
  • #2

Кажется, проблема решена. Если я также избегу обратной косой черты в регулярном выражении:

 - name: Remove LE webroot definition

lineinfile: 

path: "/etc/path/to/config/{{ inventory_hostname }}.conf"

regexp: "^{{ inventory_hostname | replace('.', '\\.') }} = /path/to/a/directory"

state: absent
 
 

Hudysh


Рег
12 Aug, 2004

Тем
81

Постов
241

Баллов
646
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно