场景:将动态脚本分发到各个机器的指定目录下spa
说明:使用SaltStack的 file.managedcode
file.managed 里面能够定义内容的几种方式 blog
- source:ip
- contents:get
- contents_pillar:class
contents_grains:test
这里咱们使用 - contents_pillar:变量
代码:乱码
{% set script_dir = pillar.get("script_dir","") %} {% set script_content = pillar.get("script_content","") %} {{script_dir}}: file.managed: - mode: 0644 - contents_pillar: {{ script_content }} - template: jinja - user: root
调用方式模拟:file
hostname state.sls test pillar='{"script_content":"script_content","script_content":"123/n456","script_dir":"/data/aaa/aa.sh"}'
说明:
hostname:要分发的主机名称
test:编写的sls文件名称
这里至关于使用了变量嵌套的方式(script_content)进行传值,解决了上传内容不能换行和中文乱码的问题
注意:
这里使用的是- contents_pillar:,若是使用- contents:,无法进行换行,而且有中文乱码的问题。