0
使用for循環時遇到我的jinja2模板問題。我想我只是啞巴得到正確的語法。Jinja2循環加鹽堆
{% for options in salt['pillar.get']('nexus.file.nexus.vmoptions') %}
//trying to access a yaml list (posted below)`
{% for addjavavariables in options %}
//trying to get the lists out of the options
{{ nexus.file.nexus.vmoptions.addjavavariables[0] }}
//trying to write every single line from my list
{{ addjavavariables }}:
- {{ addjavavariables }}
{% endfor %}
{% endfor %}
的YAML看起來是這樣的:
nexus: file: nexus: vmoptions: addjavavariables: - 'Xms1200M' - 'Xmx1200M' - 'XX:MaxDirectMemorySize=2G' - 'XX:+UnlockDiagnosticVMOptions' - 'XX:+UnsyncloadClass' - 'XX:+LogVMOutput' - 'XX:LogFile=../sonatype-work/nexus3/log/jvm.log' - 'Djava.net.preferIPv4Stack=true' - 'Dkaraf.home=.' - 'Dkaraf.base=.' - 'Dkaraf.etc=etc/karaf' - 'Djava.util.logging.config.file=etc/karaf/java.util.logging.properties' - 'Dkaraf.data=../sonatype-work/nexus3' - 'Djava.io.tmpdir=../sonatype-work/nexus3/tmp' - "Dkaraf.s'tartLocalConsole=false" - 'Djava.util.prefs.userRoot=/home/nexus/.java'
最後的文件應該看起來像
-Xms1200M
-Xmx1200M
-XX:MaxDirectMemorySize=2G
-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
-Dkaraf.s'tartLocalConsole=false
-Djava.util.prefs.userRoot=/home/nexus/.java
我的問題是,我沒有得到任何東西到文件。它也不會進入循環。任何人都可以給我一個提示,我可以如何將所有項目放入列表中,並將開始的短劃線放入文件中?
非常感謝您!它運作良好。 我以爲我不得不迭代列表中的每個項目來獲取項目。我不知道我可以去'addjavavariables'並自動獲取每個項目。我以爲我總是必須去找像'addjavavariables [index] .value'這樣的東西。 我標記你的答案是正確的。 –