salt cmd.script

salt '*' cmd.script



cmd.run  這個前面說了


cmd.script

這個是比較強大的命令,意思是可以從遠程下載一個腳本在客戶端執行


CLIExample:

         salt '*' cmd.script salt://scripts/runme.sh

         salt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 "arg 3"'



幫助文檔說Thescript can be located on the salt master file server or on an HTTP/FTP       server.


所以配置一下salt服務端把腳本放在服務端



編輯/etc/salt/master,打開下面的註釋,保存後重啓服務端

file_roots:

   base:

     - /srv/salt


如果沒有/srv/salt/script目錄就創建一個


cd/srv/salt/scripts


寫一個shell腳本保存爲1.sh

  1. #!/bin/bash

  2. echo  "test salt" > /tmp/testsalt.txt

複製代碼




執行遠程命令

  1. salt 'cn-gd-gz-0001' cmd.script salt://scripts/1.sh

複製代碼





顯示的信息還是很直觀的,stdout沒有信息顯示是因爲腳本語句沒有顯示文本,可以加多一句echo “ok”再執行多一次就可以看到輸出了.


看幫助好像還可以在執行腳本時添加命令行參數,試試

修改腳本爲

  1. #!/bin/bash

  2. echo  "test salt" > /tmp/testsalt.txt

  3. echo $1

  4. echo $2

  5. echo $3


  6. if [ "$3"x = "yy"x ]

  7. then

  8.    echo "ok ???????????????"

  9. fi

複製代碼

再次執行遠程命令

  1. salt 'cn-gd-gz-0001' cmd.script salt://scripts/1.sh "aa bb cc"

  2. salt 'cn-gd-gz-0001' cmd.script salt://scripts/1.sh "aa bb yy"

複製代碼

看起來傳遞的參數有效的


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章