利用 Saltstack 遠端執行命令

2022-07-04 08:57:14 字數 2987 閱讀 3296

saltstack的乙個比較突出優勢就是具備執行遠端命令的功能。

操作方法與func

(相似,可以幫助運維人員完成集中化的操作平台。

命令格式:salt '《操作目標》' 《方法》 [引數]

[root@saltstack-master master]# salt '

saltstack_web1group_1

' cmd.run '

free -m

'saltstack_web1group_1:

total used free shared buffers cached

mem:

23022360

1555

-/+ buffers/cache: 153

77swap:

2083

2221861

其中針對《操作目標》,saltstack提供了多種方法對被控制端(id)進行過濾。下面列舉常用的具體引數:

1)-e:--pcre:通過正規表示式進行匹配。

[root@saltstack-master master]# salt -e '

^saltstack.*

'test.ping

saltstack_web1group_1:

true

saltstack_web1group_2:

true

2)-l:--list  以主機id名列表的形式進行過濾,格式與python的列表相似,即不同主機id名稱使用逗號分隔。

[root@saltstack-master master]# salt -l '

saltstack_web1group_1,saltstack_web1group_2

'grains.item osfullname

saltstack_web1group_1:

----------osfullname:

centos

saltstack_web1group_2:

----------osfullname:

centos

3)-g:--grain 根據被控主機的grains資訊(grains是saltstack重要元件之一,重要作用是收集被控主機的基本系統資訊)進行匹配過濾,格式為':'。

比如過濾核心為linux的主機可以寫成'kernel:linux',如果同時需要正規表示式的支援可以切成--grain-pcre引數來執行。

[root@saltstack-master ~]# salt -g '

osrelease:6.5

' cmd.run '

python -v

'saltstack_web1group_1:

python

2.6.6

saltstack_web1group_2:

python

2.6.6

比如過濾所有具備'apache:httpd' pillar值的主機。

探測具有"httpd:root:/data"資訊的主機連通性。

其中pillar屬性配置檔案如下:

5)-n:--nodegroup 根據主控端master配置檔案中的分組名稱進行過濾。

如下配置的組資訊(主機資訊支援正規表示式、grain、條件運算子等),通常根據業務型別劃分,不同業務具備相同的特點,包括部署環境、應用平台、配置檔案等。

l@:表示後面的主機id格式為列表,即主機id以逗號隔開;

g@:表示以grain格式描述;

[root@saltstack-master salt]# vim /etc/salt/master

nodegroups:

web1group:

'l@saltstack_web1group_1,saltstack_web1group_2

'[root@saltstack-master salt]# salt -n web1group test.ping

saltstack_web1group_2:

true

saltstack_web1group_1:

true

6)-c:--compound 根據條件運算子not、and、or去匹配不同規則的主機資訊。

[root@saltstack-master salt]# salt -c '

e@^salt.* and g@os:centos

'test.ping

saltstack_web1group_1:

true

saltstack_web1group_2:

true

not語句不能作為第乙個條件執行,不過可以通過以下方法來規避:

[root@saltstack-master salt]# salt -c '

* and not e@^jenkins.*

'test.ping

saltstack_web1group_2:

true

saltstack_web1group_1:

true

[root@saltstack-master salt]# salt -s 192.168.0.0/16

test.ping

saltstack_web1group_1:

true

saltstack_web1group_2:

true

SaltStack 三 遠端執行

在前面3個小節我們介紹了saltstack並且講解了salt的安裝部署。相信你現在已經只有擁有乙個master和至少乙個minion。我們能做點什麼呢?下面的兩個章節,帶領讀者快速的使用saltstack的遠端執行和配置管理功能。遠端執行時saltstack的核心功能之一。主要使用salt模組可以批...

saltstack配置安裝和遠端執行

實驗環境 server6 mster server7 minion saltstack是乙個伺服器基礎架構集中化管理平台,具備配置管理 遠端執行 監控等功能.通過部署saltstack環境,我們可以在成千上萬臺伺服器上做到批量執行命令,根據不同業務特性進行配置集中化管理 分發檔案 採集伺服器資料 作...

saltstack遠端執行之目標選擇

g遠端執行目標選擇分為兩類 1.和minion id有關,需要使用minion id 1 globbing 萬用字元 2 regex 正規表示式 3 list 列表 2.和minionid無關不涉及到minion id 1 子網 ip位址 2 grains 3 pillar 4 compound m...