Ansible поддерживает макрос {{CWD}}
.
Упаковщик использует {{}}
для функций и переменных.
Я не вижу способа избежать синтаксиса {{function_name}}
, поэтому что я могу поставить в буквальном смысле {{CWD}}
. Я пробовал кучу разных вещей, в том числе с использованием скобок Юникода (не работало), но они всегда заканчивали тем, что были недействительными или пытались вызвать несуществующую функцию CWD, которая явно нарушает упаковщик.
Это пример строки, которую я пытаюсь заставить работать.
"extra_arguments": [ "--extra-vars", "roles_path={{.CWD}}/temp-roles" ],
Я нашел хакерский обходной путь. Просто возьмите переменную $ PWD, предоставленную оболочкой, и передайте ее, затем используйте ее там, где я использовал CWD. Это НЕ отвечает на мой вопрос, и, глядя на библиотеку шаблонов Go, на которой она основана, я не думаю, что можно избежать фигурных скобок.
"variables": {
"pwd": "{{env `PWD`}}"
},
"extra_arguments": [ "--extra-vars", "roles_path={{user `pwd`}}/temp-roles" ],