Saltstack系列2:Saltstack遠端執行命令

張衝andy發表於2019-10-19

命令

命令格式:

salt '<操作目標>' <方法>[引數]

例:

salt 'wx' cmd.run 'free -m' #檢視被控主機記憶體使用情況

常用引數

針對<操作目標>,Saltstack提供了多種方法對被控主機(id)進行過濾。下面列舉出常用具體引數:
-E,--pcre,通過正規表示式進行匹配:

salt -E '^SN2013.*' test.ping #探測SN2013開頭的主機id名是否連通

 

-L,--list,以主機id名列表的形式進行過濾,格式與Python的列表相似,即不同主機id名稱使用逗號分離。

salt -L 'SN2013-08-021,SN2013-08-021' grains.item osfullname #獲取主機id為:SN2013-08-021,SN2013-08-021完整作業系統發行版名稱

 

-G,--grain,根據被控主機的grains資訊進行匹配過濾,格式為:<grain value>:<grain expression>

salt -G 'osrelease:6.4' cmd.run 'python -V' #獲取發行版本號為6.4的python版本號

 


-I,--pillar,根據被控主機的pillar資訊進行匹配過濾,格式為:"物件名稱":"物件值"

salt -I 'nginx:root:/data' test.ping #探測具有'nginx:root:/data'資訊的連通性。
#pillar屬性配置檔案如下:
nginx:
  root: /data

 

-N,--nodegroup,根據主控端master配置檔案中的分組名稱進行過濾。

複製程式碼
#分組配置:【/etc/salt/master】
nodegroups:
web1group: 'L@wx,SN2013-08-21'
web2group: 'L@SN2013-08-22,SN2014'
#其中L@表示後面的主機id格式為列表,即主機id以逗號分隔:G@表示以grain格式描述:S@表示以IP子網或地址格式描述
salt -N web2group test.ping #探測web2group被控主機的連通性
複製程式碼

 

-C,--compound,根據條件運算子not、and、or去匹配不同規則的主機資訊

salt -C 'E@^SN2013.* and G@os:Centos' test.ping #探測SN2013開頭並且作業系統版本為CentOS的主機的連通性

 

-S,--ipcidr,根據被控主機的IP地址或IP子網進行匹配

salt -S 192.168.0.0/16 test.ping
salt -S 192.168.1.10 test.ping

 


參考資料:

根據劉天斯《Python自動化運維技術與最佳實踐》整理


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2660641/,如需轉載,請註明出處,否則將追究法律責任。

相關文章