92.自動運維介紹 saltstack安裝、啓動、配置認證

24.1 自動化運維介紹html

24.2 saltstack安裝python

24.3 啓動saltstack服務linux

24.4 saltstack配置認證vim

 

 

 

 

24.1 自動化運維介紹安全

 

 

認識自動化運維架構

傳統運維效率低,大多工做人爲完成運維

傳統運維工做繁瑣,容易出錯ssh

傳統運維每日重複作相同的事情tcp

傳統運維沒有標準化流程工具

傳統運維的腳本繁多,不能方便管理

自動化運維就是要解決上面全部問題

 

常見自動化運維工具

1.Puppet (www.puppetlabs.com) #出現的比較早

基於rubby開發,c/s架構,支持多平臺,可管理配置文件、用戶、cron任務、軟件包、系統服務等。 分爲社區版(免費)和企業版(收費),企業版支持圖形化配置。

2.Saltstack(官網 https://saltstack.com,文檔docs.saltstack.com )

基於python開發,c/s架構,支持多平臺,比puppet輕量,在遠程執行命令時很是快捷,配置和使用比puppet容易,能實現puppet幾乎全部的功能。

#使用的串行效率很快。而expect使用的並行(for循環,執行完一個在繼續執行下一個,效率就會很慢)

#除了這種cs架構(服務端客戶端),也支持只裝一個命令的

#支持的機器會更多

3.Ansible (www.ansible.com )

更加簡潔的自動化運維工具,不須要在客戶端上安裝agent,基於python開發。能夠實現批量操做系統配置、批量程序的部署、批量運行命令。

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

24.2 saltstack安裝/24.3 啓動saltstack服務

 

 

 

1.saltstack介紹https://docs.saltstack.com/en/latest/topics/index.html

2.可使用salt-ssh遠程執行,相似ansible,

3.也支持c/s模式,下面咱們將講述該種模式的使用,須要準備兩臺機器

~133.128爲服務端(中控中心),133.130爲客戶端

~設置hostname以及hosts,aming-01,aming-02

#實際機器量不少的狀況下,能夠搞一個內部的dns(帶域名的),相似什麼A1.axinlinux.com、A2.axinlinux.com,全部的機器都是這種形式的。這樣的話hosts就不用配置了,直接寫一個dns ip就直接指導哪個機器是誰。由於臨時作實驗因此寫了個hosts

4.兩臺機器所有安裝saltstack yum源

yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm #可根據以上的官方文檔,安裝更新的yum源

5.128上執行 yum install -y salt-master(哪一個爲中控中心就安裝master) salt-minion

6.130上執行 yum install -y salt-minion

7.128上編輯配置文件(服務端master)

vi /etc/salt/minion //增長

master: aming-01

啓動服務systemctl start salt-master; systemctl start salt-minion

8.130上編輯配置文件(客戶端minion)

vi /etc/salt/minion //增長

master: aming-01

啓動服務systemctl start salt-minion

 

服務端監聽4505和4506兩個端口,4505爲消息發佈的端口,4506爲和客戶端通訊的端口

 

 

 

實例:

01爲服務端,02爲客戶端

[root@axinlinux-01 ~]# hostname

axinlinux-01

[root@axinlinux-01 ~]# vim /etc/hosts

192.168.208.128 axinlinux-01

192.168.208.130 axinlinux-02

[root@axinlinux-02 ~]# hostname

axinlinux-02

[root@axinlinux-02 ~]# vim /etc/hosts

192.168.208.128 axinlinux-01

192.168.208.130 axinlinux-02

[root@axinlinux-01 ~]# yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

[root@axinlinux-02 ~]# yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

[root@axinlinux-01 ~]# yum list |grep salt #可看到不少剛纔執行yum時所產生的rpm包,01上須要安裝的是:

salt-master.noarch 2018.3.3-1.el7 salt-latest #這兩個是01要安裝的,其餘的暫不接觸

salt-minion.noarch 2018.3.3-1.el7 salt-latest

salt-ssh.noarch 2018.3.3-1.el7 salt-latest #ssh這個後續咱們再講

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

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

[root@axinlinux-01 ~]# vim /etc/salt/minion

master: axinlinux-01 #改成master爲hosts設置的01機器的主機名

[root@axinlinux-02 ~]# vim /etc/salt/minion

master: axinlinux-01 #客戶端也要改

[root@axinlinux-02 ~]# systemctl start salt-minion #先啓動客戶機的minoon

[root@axinlinux-02 ~]# ps aux |grep salt

[root@axinlinux-02 ~]# netstat -lntp #雖然minion是跟master經過tcp/ip通訊,可是minion不監放任何端口。master纔會監聽端口

[root@axinlinux-01 ~]# systemctl start salt-master

[root@axinlinux-01 ~]# systemctl start salt-minion

[root@axinlinux-01 ~]# ps aux |grep salt

[root@axinlinux-01 ~]# netstat -lntp #master監聽兩個端口

tcp 0 0 0.0.0.0:4505 0.0.0.0:* LISTEN 2906/python #4505來發送消息

tcp 0 0 0.0.0.0:4506 0.0.0.0:* LISTEN 2912/python #master和minion用來通訊的

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

24.4 saltstack配置認證

 

 

 

1.master端和minion端通訊須要創建一個安全通道,傳輸過程須要加密,因此得配置認證,也是經過密鑰對來加密解密的

#也就是一個密鑰對,以後才能夠去傳輸數據

2.minion在第一次啓動時會在/etc/salt/pki/minion/下生成minion.pem和minion.pub,其中.pub爲公鑰,它會把公鑰傳輸給master

3.master第一次啓動時也會在/etc/salt/pki/master下生成密鑰對,當master接收到minion傳過來的公鑰後,經過salt-key工具接受這個公鑰,一旦接受後就會在/etc/salt/pki/master/minions/目錄裏存放剛剛接受的公鑰,同時客戶端也會接受master傳過去的公鑰,把它放在/etc/salt/pki/minion目錄下,並命名爲minion_master.pub

4.以上過程須要藉助salt-key工具來實現

5.執行以下命令 salt-key -a aming-01// -a後面跟主機名,能夠認證指定主機

6.salt-key -a aming-02

 

salt-key命令用法

-a 後面跟主機名,認證指定主機

-A 認證全部主機 #後面什麼後不用跟

-r 跟主機名,拒絕指定主機

-R 拒絕全部主機

-d 跟主機名,刪除指定主機認證

-D 刪除所有主機認證

-y 省略掉交互,至關於直接按了y

 

 

實例:

[root@axinlinux-01 ~]# ls /etc/salt/pki/master/

master.pem master.pub minions minions_autosign minions_denied minions_pre minions_rejected

[root@axinlinux-01 ~]# salt-key -a axinlinux-02 #若是直接是-A能夠將全部的機器所有認證

The following keys are going to be accepted:

Unaccepted Keys:

axinlinux-02

Proceed? [n/Y] y #按y

Key for minion axinlinux-02 accepted.

[root@axinlinux-01 ~]# salt-key #而後再次輸入salt-key

Accepted Keys: #已經經過的,也就是已經接受了02的公鑰

axinlinux-02

Denied Keys: #被拒絕的

Unaccepted Keys: #默認的,也就是機器裏能識別到的

axinlinux-01

Rejected Keys:

[root@axinlinux-01 ~]# cat /etc/salt/pki/master/minions/axinlinux-02 #因此在這就有了02的公鑰(這個文件就是客戶機上minion.pub)

[root@axinlinux-02 ~]# cat /etc/salt/pki/minion/minion.pub #cat02的公鑰看是否是跟01接收到的公鑰一致

[root@axinlinux-01 ~]# salt-key -A #直接-A(也就是將本機也認證)

The following keys are going to be accepted:

Unaccepted Keys:

axinlinux-01

Proceed? [n/Y] y

Key for minion axinlinux-01 accepted.

[root@axinlinux-01 ~]# salt-key #纔看一下,就已經所有經過了

Accepted Keys:

axinlinux-01

axinlinux-02

Denied Keys:

Unaccepted Keys:

Rejected Keys:

相關文章
相關標籤/搜索