命令
命令格式:
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自動化運維技術與最佳實踐》整理