如何使用换行符生成带有salt-stack的脚本

时间:2018-05-25 15:11:19

标签: jinja2 salt-stack

我正在尝试使用salt-stack和jinja构建一个脚本。这是我想得到的结果:

#!/bin/bash

echo 1 &&
echo 2 &&
echo 3 &&
echo 4

我有脚本:

init.sls

{% set cmds = [] %}
{% for id in [1, 2, 3, 4] %}
{% do cmds.append("echo " ~ id) %}
{% endfor %}

/tmp/test.sh:
  file.managed:
    - source: salt://test.sh.jinja
    - template: jinja
    - mode: 0775
    - require:
      - file:     /tmp
    - context:
      cmds : '{{ cmds | join(" &&\n") }}'

test.sh.jinja

#!/bin/bash

{{ cmds  }}

RESULT

  

cat /tmp/test.sh

#!/bin/bash

echo 1 && echo 2 && echo 3 && echo 4

所以删除了换行符。怎么解决?谢谢。

1 个答案:

答案 0 :(得分:0)

快速查看:https://docs.saltstack.com/en/latest/topics/jinja/index.html#list-files
揭示:

    - context:
      cmds : {{ cmds | join(' && \n') }}