我試着用Jinja解析一個properties文件來設置變量。Saltstack - 解析YAML屬性文件來設置Jinja變量 - For循環
我多發的類別和子類別在該文件中,如:
- jboss_container
- 一些屬性
- foobar的
- jboss_datasource_install
- datasource1
- PROP1
- PROP2
- datasource2
- datasource1
- jboss_app_deploy
- APP1
- APP2
目標是設置每個類別的變量並在循環中重用它們。 - >例如,我想在每個子類別
foobar.properties.yml安裝2個的JBoss數據源和循環:
jboss_container:
jboss_container_values:
jboss_container_install: 'True'
jboss_app_name: 'foobar'
jboss_version: 'x.x.x'
...
jboss_datasource_install:
datasource1:
jboss_datasource_install: 'True'
jboss_datasource_name: 'foobar'
jboss_datasource_jta: 'true'
...
datasource2:
jboss_datasource_install: 'True'
...
init.sls:
{% import_yaml 'foobar_properties.yml' as jboss_apps %}
% for jboss_container, jboss_container_values in jboss_apps.iteritems() %}
{% for key, value in jboss_container_values.items() %}
{% if value.get('jboss_container_install') != 'False' %}
# Do stuff - {{ value.jboss_app_name }}
{% endif %}
{% endfor %}
{% endfor %}
{% for jboss_datasource_install, jboss_datasource_install_name in jboss_apps.iteritems() %}
{% for key, value in jboss_datasource_install_name.items() %}
{% if value.get('jboss_datasource_install') != 'False' %}
# Do stuff - {{ value.jboss_datasource_install }}
{% endif %}
{% endfor %}
{% endfor %}
實際上在鹽中發生此錯誤:
神社變量「字典對象有沒有屬性「jboss_app_name」
任何想法如何做到這一點?
非常感謝:)通過jboss_datasource_install
值== == True的修復方法對我來說非常合適。謝謝 – yrein
但是{%for key,jboss_apps ['jboss_container'] ['jboss_container_values']%}中的值失敗,失敗:Jinja錯誤:解壓太多值 – yrein
有一個'iteritems()'丟失,我修正了它。 – flyx