1. 程式人生 > >SaltStack安裝配置與遠程執行測試

SaltStack安裝配置與遠程執行測試

saltstack minion cmd.run test.ping 遠程執行

SaltStack是基於Python開發的服務器基礎架構集中管理平臺,也稱為自動化運維工具,具備遠程執行、配置管理、雲管理三大功能。管理端稱為Master,被管理端稱為Minion,Master和Minion通過密鑰認證進行加密通信,通過消息隊列軟件ZeroMQ進行內容傳輸,使用的默認端口為4505和4506。本文的主要內容為SaltStack的安裝配置與遠程執行測試。

一、環境準備

1、使用3臺Redhat 6.5的服務器,分別是:

salt-master:192.168.10.120

salt-minion01:192.168.10.121

salt-minion02:192.168.10.122

2、每臺服務器分別配置hosts解析

3、每臺服務器上先安裝官方的yum源,它會在/etc/yum.repos.d/下面自動生成repo文件,下載地址為

https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

技術分享圖片

技術分享圖片


二、安裝配置SaltStack

1、在salt-master上使用yum安裝salt-master

[root@salt-master ~]# yum install -y salt-master

技術分享圖片

技術分享圖片

2、分別在兩臺salt-minion上通過yum安salt-minion,以下以salt-minion01為例

[root@salt-minion01 ~]# yum install salt-minion -y

技術分享圖片

技術分享圖片

3、在salt-master上設置salt-master服務開機自啟並啟動服務

技術分享圖片

4、在salt-minion01和salt-minion02上修改配置文件,指定master的IP地址,設置服務開機自啟並啟動服務

[root@salt-minion01 ~]# sed -i 's/#master: salt/master: 192.168.10.120/g' /etc/salt/minion

[root@salt-minion01 ~]# grep master: /etc/salt/minion |grep -v ^#

master: 192.168.10.120

[root@salt-minion01 ~]#chkconfig salt-minion on

技術分享圖片

[root@salt-minion02 ~]# sed -i 's/#master: salt/master: 192.168.10.120/g' /etc/salt/minion

[root@salt-minion02 ~]# grep master: /etc/salt/minion |grep -v ^#

master: 192.168.10.120

[root@salt-minion02 ~]#chkconfig salt-minion on

技術分享圖片

5、master和minion的服務啟動後都會生成公鑰和私鑰,需要在master端使用salt-key命令配置密鑰認證,完成後就可以對minion進行管理了

技術分享圖片

salt-key的命令參數主要有:

-L 會顯示所有minion公鑰,不加任何參數也相當於-L的效果

-a 許可指定的公鑰,後面要指定你允許的minion的id名

-A 許可所有minion的公鑰

-r 拒絕指定的公鑰

-R 拒絕所有pending的公鑰

-d 根據公鑰的名稱刪除公鑰,刪除指定的minion

-D 刪除所有公鑰,刪除所有已經認證的minion

-y 對所有詢問是否繼續,回答yes


三、遠程執行測試

1、使用test.ping測試網絡連通性

技術分享圖片

2、使用cmd.run測試遠程執行命令

技術分享圖片

3、對minion的批量管理操作,還可以靈活使用以下寫法

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

4、當服務器數量比較多時,我們可以提前定義好分組,目標服務器分組有以下七種方式,這七種方式的標示符分別為:

G -- 針對 Grains 做單個匹配,例如:G@os:Ubuntu

E -- 針對 minion 針對正則表達式做匹配,例如:E@web\d+.(dev|qa|prod).loc

P -- 針對 Grains 做正則表達式匹配,例如:P@os:(RedHat|Fedora|CentOS)

L -- 針對 minion 做列表匹配,例如:[email protected],minion3.domain.com or bl*.domain.com

I -- 針對 Pillar 做單個匹配,例如:I@pdata:foobar

S -- 針對子網或是 IP 做匹配,例如:[email protected]/24 or [email protected]

R -- 針對客戶端範圍做匹配,例如: R@%foo.bar

5、編輯/etc/salt/master,定義好幾個分組

技術分享圖片

6、對定義的分組進行測試

技術分享圖片

7、我們還可以--return syslog將遠程執行的返回結果記錄到minion的系統日誌中

技術分享圖片

其中:

jid #可以理解為一個任務編號

return:Filesystem # 表示返回到文件系統裏,也就是系統日誌裏

retcode0 #表示返回結果狀態碼

success:true #成功與否

fun:cmd.run #執行的函數模塊

id:salt-minion01 #minionid

8、當然也可以使用重定向符將遠程執行的返回結果重定向到master上的文件中

技術分享圖片

本文出自江健龍的技術博客,轉載請註明出處 jiangjianlong.blog.51cto.com

SaltStack安裝配置與遠程執行測試