saltstack 支持在master上向client 遠程執行命令,並顯示命令執行的結果
命令格式:
salt '<操作目標>' <方法> [參數]
示例
- 示例1 ping檢查agent
*:代表所有minion主機;test:模塊; ping:test模塊的一個方法,這里的單引號也可以使用雙引號
[root@stack-master ~]# salt '*' test.ping
stack-master:
True
stack-node01:
True
stack-node02:
True
- 示例2 執行命令
使用cmd.run遠程執行命令,cmd是模塊,run是cmd模塊的一個方法
[root@stack-master ~]# salt '*' cmd.run "free -m"
stack-master:
total used free shared buffers cached
Mem: 1877 670 1207 0 28 225
-/+ buffers/cache: 415 1461
Swap: 4095 0 4095
stack-node01:
total used free shared buffers cached
Mem: 1877 377 1499 0 27 223
-/+ buffers/cache: 126 1751
Swap: 4095 0 4095
stack-node02:
total used free shared buffers cached
Mem: 1877 377 1499 0 28 223
-/+ buffers/cache: 125 1751
Swap: 4095 0 4095
針對<操作目標> saltstack 提供了多種方法對client(id)進行過濾
- 普通匹配
匹配所有 '*'
匹配單個 'minion_id'
- 正則匹配
使用-E ,--pcre 進行正則匹配
[root@stack-master ~]# salt -E '^stack-node\w+' cmd.run "free -m"
stack-node01:
total used free shared buffers cached
Mem: 1877 377 1499 0 27 223
-/+ buffers/cache: 126 1751
Swap: 4095 0 4095
stack-node02:
total used free shared buffers cached
Mem: 1877 377 1499 0 28 223
-/+ buffers/cache: 125 1751
Swap: 4095 0 4095
- 列表匹配
-L,--list,以主機id名列表的形式進行過濾,格式與Python的列表相似,即不同主機id 名稱使用逗號分隔
[root@stack-master ~]# salt -L 'stack-node01,stack-node02' cmd.run "free -m"
stack-node02:
total used free shared buffers cached
Mem: 1877 376 1501 0 28 223
-/+ buffers/cache: 123 1753
Swap: 4095 0 4095
stack-node01:
total used free shared buffers cached
Mem: 1877 378 1499 0 28 223
-/+ buffers/cache: 126 1751
Swap: 4095 0 4095
- IP匹配
-S,--ipcidr,根據被控主機的IP地址或IP子網進行匹配
[root@stack-master ~]# salt -S 172.16.202.0/24 cmd.run "free -m"
stack-master:
total used free shared buffers cached
Mem: 1877 676 1201 0 30 225
-/+ buffers/cache: 420 1457
Swap: 4095 0 4095
stack-node01:
total used free shared buffers cached
Mem: 1877 378 1498 0 28 223
-/+ buffers/cache: 126 1751
Swap: 4095 0 4095
stack-node02:
total used free shared buffers cached
Mem: 1877 376 1500 0 28 223
-/+ buffers/cache: 123 1753
Swap: 4095 0 4095