Я использую Ansible шаблоны и импортирую переменные из внешнего файла app_vars.yml
:
# App list
apps:
- app1
# App1 vars
app1:
environments:
- demo
- test
filebeat_properties:
paths:
- /home/_env_-app/logs/_env_-*.log
fields:
app_id: _env_
В шаблоне filebeat_template.yml
В настоящее время я просто заменяю _env_
строка с env
из for
l oop с использованием фильтра replace()
, подобного следующему:
{% for app in apps %}
{% for env in vars[app]["environments"] %}
- type: log
enabled: true
{{ vars[app]["filebeat_properties"] | to_nice_yaml(indent=2, width=9999) | indent(2) | replace("_env_", env) }}
{% endfor %}
{% endfor %}
Но мне было интересно, есть ли какой-то синтаксис, который позволяет помечать выражение Jinja для выражения заменить в файле app_vars.yml
? Вроде как
...
paths:
- /home/{{ env }}-app/logs/_env_-*.log
fields:
app_id: {{ env }}
, где {{ env }}
нужно заменить в файле шаблона на переменную for
l oop env
? Добавление ""
вокруг него делает его просто строкой.
Спасибо!