В обрабатываемом файле имеется такая строка:
<Machine uuid="{5c70108e-f64c-4e8c-b8a4-a04231e24718}"
Видно, что UUID записан в фигурных скобках.
Я пишу задачу, которая заменит этот UUID:
- name: Замена <Mashine uuid=...>
lineinfile:
destfile: "{{ vmImagesPath }}/{{ item[0] }}/{{ imageFile }}.vbox"
backrefs: yes
regexp: '(^.*?\<Machine uuid\=\"\{)(\w{8}-\w{4}-\w{4}-\w{4}-\w{12})(.*)'
line: '<Machine uuid="{{{ vboxUuid.stdout }}}\3'
И последнюю строчку Ansible не может обработать, ему плохеет от трех скобок.
fatal: [hyperpc]: FAILED! => {"msg": "template error while templating string: expected token ':', got '}'. String: <Machine uuid=\"{{{ vboxUuid.stdout }}}\\3"}
Я пробовал экранировать так:
line: '<Machine uuid="\{{{ vboxUuid.stdout \}}}\3'
Тоже ошибка, но другая.
Я пробовал складывать строки так:
line: '<Machine uuid="{'+'{{ vboxUuid.stdout }}'+'}\3'
Тоже ошибка.
В общем, я никак не могу вывести значение переменной так, чтобы оно было окружено фигурными скобками. Как это сделать?