場景:將動態腳本分發到各個機器的指定目錄下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:,無法進行換行,而且有中文亂碼的問題。