SaltStack遠程執行兩大模塊:cmd與cp模塊測試
一、SaltStack的模塊及其函數
1、使用命令salt 'salt-minion01' sys.list_modules可以列出所有的模塊,可以看到多達146個
2、使用命令salt 'salt-minion01' sys.list_functions test可以列出具體模塊(如test模塊)的所有函數
3、使用命令salt 'salt-minion01' sys.doc test可以列出具體模塊(如test模塊)全部函數的幫助及示例,若指定模塊的具體函數,則可以單獨查看該函數(如test.ping)的幫助及示例,類似查看man手冊
二、cmd模塊及其常用函數測試
1、cmd模塊有不少函數,本節主要測試的是cmd.run、cmd.run_bg、cmd.script三個函數的使用
2、cmd.run的命令中若使用了awk,則$符前面需要加轉義符
3、cmd.run可以使用參數stdin指定標準輸入字符串
4、使用cmd.run_bg可以將命令放到minion後臺執行
5、使用cmd.script可以將master上的腳本推送到minion並執行,通過查看/etc/salt/master文件可以知道master默認的文件根目錄是/src/salt,需將測試腳本放到該目錄
6、cmd.script推送腳本時也可以帶參數
三、cp模塊及其常用函數測試
1、cp模塊可以實現master推送文件或目錄給minion,也可以實現從minion拉取文件或目錄,cp模塊也有不少函數,本節主要測試cp.get_file、cp.get_dir、cp.push、cp.push_dir四個函數的使用
2、使用cp.get_file可以推送master上的文件到minion,文件需要位於master的文件根目錄中,即默認的/srv/salt
3、當推送文件給minion時指定的存放路徑在minion上不存在時會失敗,這時可以加參數makedirs=true自動在minion上創建目錄
4、使用cp.get_dir可以推送master上的目錄到minion,目錄需要位於master的文件根目錄中,即默認的/srv/salt
5、從minion拉取文件或目錄到master,默認是被禁用的,需要修改master上的/etc/salt/master文件啟用,並重啟salt-master服務。拉取的文件或目錄默認存放在/var/cache/salt/master/minions/minion-id/files下
6、當使用cp.push從多臺minion拉取文件時,即時使用了通配符,也只有文件名在多臺minion上都相同的文件才會被拉取
7、如果想使用通配符拉取同一類文件,可以使用cp.push_dir加上glob參數
8、使用cp.push_dir如果不指定glob參數,則是拉取整個目錄
9、雖然從不同的minion拉取的文件都存放在minion各自的目錄下,但使用通配符可以輕松地把文件集中復制到同一個目錄中
本文出自江健龍的技術博客 jiangjianlong.blog.51cto.com,轉載請註明出處。
SaltStack遠程執行兩大模塊:cmd與cp模塊測試