{% import_json "/tmp/$INSTANCE_ID/conf.json" as config_properties %}
Я полагаю, вы пытаетесь оценить переменную $INSTANCE_ID
в приведенном выше утверждении.Шаблон Jinja оценивает переменные в выражениях выражений.
В этом случае переменная задается в первой строке, используя set
{% set instance_id = grains['INSTANCE_ID'] %}
Таким образом, вы можете использовать ее в выражении вместе сс добавлением строки, например
{% import_json "/tmp/" + instance_id + "/conf.json" as config_properties %}
Вышеприведенный оператор должен исправить вашу ошибку.
Кроме того, я бы предложил использовать переменную для оценки значения строкового выражения выше, например
{% set conf_json_path = "/tmp/" + instance_id + "/conf.json" %}
и используйте его вот так
{% import_json conf_json_path as config_properties %}
Надеюсь, эта помощь!
Если вы хотите использовать словарь grains
напрямую, вы можете использоватьзначение вот так
{% set conf_json_path = "/tmp/" + grains['INSTANCE_ID'] + "/conf.json" %}