自動化運維之SaltStack,安裝部署和使用

在自動化運維方面,開源且主流的工具主要有SaltStack和Ansible,兩者互有優勢。在這裡我準備先整理Salt-Stack的常規安裝部署和簡單使用,包括salt-master、salt-minion(linux和windows)、salt-ssh。

後續篇幅再整理Salt-Stack的架構研究和Ansible的部署。希望能幫助到需要的朋友。

一、簡介

自動化運維之SaltStack,安裝部署和使用

Saltstack是由thomas Hatch於2011年創建的一個開源項目,設計初衷是為了實現一個快速的遠程執行系統。它是基於python開發的一套C/S架構配置管理工具,使用SSL證書籤方的方式進行認證管理,底層使用ZeroMQ消息隊列pub/sub方式通信。號稱世界上最快的消息隊列ZeroMQ能快速在成千上萬臺主機上進行各種操作,並採用RSA Key方式確認身份。

二、Salt-master安裝

1. 本地yum源製作

(1)從官網上下載製作SaltStack yum源需要的各系統各軟件包

(2)用本地yum源製作工具,進入到各系統文件夾下, 執行yum源製作

[root@localhost yum.repos.d]# createrepo -v .

生成repodata文件夾,完成源索引建立

(3)完成後到各系統下進行本地yum源安裝測試,如遇到問題缺少包的情況,單獨下載後再重新制作。

2.配置yum源

所有操作均需使用root用戶。

(1)將yum.zip放到/home目錄下並解壓,解壓之後,即存在/home/yum目錄;

$ cd /home

$ unzip yum.zip

(2)備份原有的yum庫文件,並編輯salt-master需要的repo文件

$ cd /etc/yum.repos.d

$ mkdir tmprepo

$ mv *.repo tmprepo

$ vi salt.repo

編輯salt.repo文件的內容如下:

[salt-yum]

name=salt linux

baseurl=file:///home/yum/$releasever

gpgcheck=0

enable=1

編輯完成後,輸入:wq保存

(3)執行yum clean all來更新yum庫設置。

3.安裝master

所有操作均需使用root用戶。

(1)執行yum install salt-master -y來安裝salt-master。

直到提示completed! 表示執行結束。

4.配置master

所有操作均需使用root用戶

(1)修改master的配置文件/etc/salt/master

將行"#auto_accept: False" 更改為"auto_accept: True",注意冒號之後有一個空格

將行"#timeout: 5"改為"timeout: 180",注意冒號之後有一個空格

將行"#file_recv: False"改為"file_recv: True",注意冒號之後有一個空格

將行"#file_roots"的註釋符去掉,來使file_roots可見。

(2)創建必要的目錄

mkdir -p /srv/salt

5.salt-master啟動

(1)設置master開機自動啟動

$ chkconfig salt-master on

(2)啟動salt-master

$ salt-master -d

三、salt-minion安裝(Linux下)

1.上傳安裝包

將客戶端安裝包install-minion.zip上傳至客戶端服務器某個目錄下,以/home目錄為例。

上傳時最好以二進制格式上傳,可以避免跨平臺傳輸過程中出現亂碼。

2.解壓安裝包

以root用戶切換到/home目錄下,解壓安裝包

cd /home

unzip install-minion.zip

3.執行安裝腳本

進入安裝包目錄,執行安裝腳本,執行結束後,控制檯顯示“complete!”

cd /install-minion

sh insminion.sh

4.檢查安裝結果

使用ps -ef | grep salt-minion或者service salt-minion status來查詢客戶端進程是否存在

登錄服務端,嘗試執行salt命令進行連接測試。

salt 'xxx.xxx.xxx.xxx' test.ping,其中xxx.xxx.xxx.xxx代表客戶端的IP

四、salt-minion安裝(Windows下)

1.支持windows環境

windows2008和windows2003

2.安裝包說明

對於64位系統,安裝Salt-Minion-xxxx.x.x-AMD64-Setup.exe安裝包

對於32位系統,安裝Salt-Minion-xxxx.x.x-win32-Setup.exe安裝包

3.安裝步驟

(1)雙擊運行跟操作系統對於的安裝包,點擊“next”

自動化運維之SaltStack,安裝部署和使用

(2)選擇“I Agree”

自動化運維之SaltStack,安裝部署和使用

3)填寫Master主機的ip,以及本機的ip地址,然後選擇“install”,開始安裝

自動化運維之SaltStack,安裝部署和使用

(4)安裝完成後運行。

(5)打開windows任務管理器,在“服務”中查看salt-minion服務是否已經處於“正在運行”狀態。

自動化運維之SaltStack,安裝部署和使用

如果為“已停止”狀態,則右擊選擇“啟動”,再觀察運行狀態

(6)對於windows2008環境,如果有出現salt-minion安裝後不能運行的情況,需要安裝Microsoft Visual C++ 2008 x64 SP1補丁包。

(7)最後,需要確認本機的防火牆是否已經關閉。

(8)注意:如果之前有客戶端配置多臺master連接的,修改minion安裝路徑下的C:\salt\conf\minion配置文件,找到“master:”標籤,按下圖標註的方式把原來配置的多個master主機ip地址,改為只配置一臺master主機。

自動化運維之SaltStack,安裝部署和使用

五、salt-ssh安裝

1.安裝salt-ssh

所有操作均需使用root用戶。

執行yum install salt-ssh -y來安裝salt-ssh。

2.master生成秘鑰(只需執行一次)

master服務器分別生成master秘鑰文件,執行ssh-keygen後默認回車

[root@xxxx .ssh]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

18:17:cd:69:b9:69:17:1c:fd:28:7f:92:e1:15:46:74 root@xxxx

The key's randomart image is:

+--[ RSA 2048]----+

| .o +.oooE|

| .* o .o.|

| . .. o ..o.|

| + + o o o|

| . S. . + + |

| = .|

| o |

| |

| |

+-----------------+

3.master端修改ssh_config文件(只需要執行一次)

[root@xxxx template]# vim /etc/ssh/ssh_config

50 Host *

51 GSSAPIAuthentication yes

52 StrictHostKeyChecking no

4.master端修改logging(只需要執行一次)

修復/srv/salt下有中文,salt-ssh執行報錯的BUG,具體如下:

[root@localhost salt]# vim /usr/lib64/python2.6/logging/__init__.py

307 if self.args:

308 args = tuple([(str(arg)).decode("utf-8") for arg in self.args])

309 msg = msg % (args)

310 return msg

自動化運維之SaltStack,安裝部署和使用

5.拷貝公鑰(每接入一個節點,都需要只需一次)

(1)手動拷貝master上公鑰文件/root/.ssh/id_rsa.pub到minion的/root/.ssh下

(2)登錄minion,執行如下命令:

[root@localhost .ssh]# cd /root/.ssh

[root@localhost .ssh]# cat id_rsa.pub authorized_keys

[root@localhost .ssh]# service sshd restart

6.配置salt-ssh配置文件(每接入一個節點,都需要配置一次)

(1)打開master上的salt-ssh配置文件

[root@xxxx ~]# vim /etc/salt/roster

(2)編輯配置文件,以標註的方式配置key和host地址

# Sample salt-ssh config file

#web1:

# host: 192.168.42.1 # The IP addr or DNS hostname

# user: fred # Remote executions will be executed as user fred

# passwd: foobarbaz # The password to use for login, if omitted, keys are used

# sudo: True # Whether to sudo to root, not enabled by default

#web2:

# host: 192.168.42.2

26.47.136.1:

host: 26.47.136.1 注意:host前面有兩個空格

26.47.136.2:

host: 26.47.136.2

在master端進行秘鑰首次登錄確認

自動化運維之SaltStack,安裝部署和使用

執行salt-ssh 接入的key地址 test.ping

輸入Y後

輸入接入的key地址的root用戶密碼,按回車確認

(4) 使用salt-ssh進行測試

[root@xxxx ~]# salt-ssh 26.47.136.1 test.ping

26.47.136.1:

True


分享到:


相關文章: