Advertisement
konstest

Untitled

Jan 14th, 2019
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | None | 0 0
  1. #jinja
  2.  
  3. #UNDERSTANDING JINJA
  4. https://docs.saltstack.com/en/latest/topics/jinja/index.html#jinja-in-states
  5.  
  6. #Cool document about how to write TRUE salt states on jinja:
  7. https://docs.saltstack.com/en/latest/ref/renderers/all/salt.renderers.jinja.html#
  8.  
  9. #Jinja loading utils to enable a more powerful backend for jinja templates
  10. https://docs.saltstack.com/en/latest/ref/renderers/all/salt.renderers.jinja.html#module-salt.renderers.jinja
  11.  
  12. #SLS TEMPLATE VARIABLES REFERENCE (salt, grains, pillars, и т.д.)
  13. https://docs.saltstack.com/en/latest/ref/states/vars.html#sls-template-variable-reference
  14.  
  15. #Official doc
  16. http://jinja.pocoo.org/docs
  17. http://jinja.pocoo.org/docs/2.10/templates/#builtin-filters
  18.  
  19. https://docs.saltstack.com/en/latest/topics/jinja/index.html#debugging
  20. Context is: {{ show_full_context()|yaml(False) }}
  21.  
  22.  
  23. https://docs.saltstack.com/en/latest/topics/jinja/index.html#logs
  24. {%- do salt.log.error('testing jinja logging') -%}
  25.  
  26.  
  27. {% set dmz = salt['pillar.get']('cloud:dmz', default_cloud_vars, merge=True) -%}
  28. {% do dmz.update(default_vm) %}
  29.  
  30. # Jinja loop example:
  31. {% set l = [1,2,3,4,5,6,7] %}
  32. {% set count = [1] %}
  33. {% for i in l %}
  34. {% if count.append(count.pop() + 1) %}{% endif %} {# increment count by 1 #}
  35. {% endfor %}
  36.  
  37. test:
  38. test.nop:
  39. - bla: |
  40. {{ count }}
  41.  
  42.  
  43. # Example how POP working:
  44. root@scm-master:/srv/salt# cat test.sls
  45. {% set l = [7,6,5,4,3,2,1] %}
  46. Example with list:
  47. test.nop:
  48. - bla: |
  49. {{ l }}
  50. {{ l.pop() }}
  51. {{ l }}
  52. {{ l.pop(4) }}
  53. {{ l }}
  54.  
  55. {% set d = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'i': 6, 'f': 7, 'j': 8} %}
  56. Example with dict:
  57. test.nop:
  58. - bla: |
  59. {{ d }}
  60. {{ d.pop('i') }}
  61. {{ d }}
  62. root@scm-master:/srv/salt# salt flus-test-03.build.ptsecurity.ru state.show_sls test
  63. flus-test-03.build.ptsecurity.ru:
  64. ----------
  65. Example with list:
  66. ----------
  67. __env__:
  68. base
  69. __sls__:
  70. test
  71. test:
  72. |_
  73. ----------
  74. bla:
  75. [7, 6, 5, 4, 3, 2, 1]
  76. 1
  77. [7, 6, 5, 4, 3, 2]
  78. 3
  79. [7, 6, 5, 4, 2]
  80. - nop
  81. |_
  82. ----------
  83. order:
  84. 10000
  85. Example with dict:
  86. ----------
  87. __env__:
  88. base
  89. __sls__:
  90. test
  91. test:
  92. |_
  93. ----------
  94. bla:
  95. {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'f': 7, 'i': 6, 'j': 8}
  96. 6
  97. {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'f': 7, 'j': 8}
  98. - nop
  99. |_
  100. ----------
  101. order:
  102. 10001
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109. http://jinja.pocoo.org/docs/2.10/templates/#for
  110. <dl>
  111. {% for key, value in my_dict.iteritems() %}
  112. <dt>{{ key|e }}</dt>
  113. <dd>{{ value|e }}</dd>
  114. {% endfor %}
  115. </dl>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement