Saltstack的部署及其詳解


  

https://repo.saltstack.com/

Saltstack簡介:

salt是一個多平台基礎設施管理工具通常只用在linux上,使用那個輕量級的通訊器,ZN用python寫成的批量管理工具,完全開源,遵守Apache2協議,與puppet,chef功能,類似有一個強大的執行命令引擎,salt提供 了一個非常快速,靈活 並且容易使用的配置管理系統,稱之為“saltstack”

salt.一種全新基礎設施管理方式,部署輕松,在幾分鍾起來,擴展性好,很容易管理上萬台服務器,速度夠快,服務器之間妙極通訊

*一個配置 管理系統,能夠維護預定義狀態的遠程節點(比如:確保指定的報文被安裝,指定服務器在運行)

*一個分布式遠程執行系統,用來在遠程節點(可以是 單個節點,也可以是 任意規則挑選出來的節點)上執行命令和查詢數據

開發的目的為了遠程 執行提供最好的解決方案,並使遠程執行變得更好 ,更快,更簡單,既要考慮 大規模部署 ,又要考慮小規模系統,提供適應多種場合的應用讓人沮喪,但salt非常

容易設置和維護,salt設計在任一數量的srver下都可以工作salt在幾乎不改動配置的情況下就可以工作,也可以調整從而滿足特定的需求並照顧執行

    salt的核心功能

 *使用命令 發送到遠程系統上是並行,而不是串行

*使用安全加密協議,

*使用最少最快的網絡載荷

*提供簡單的編輯接口

salt同樣更加細致化的領域控制系統來遠程執行,使得系統成為目標,不止可以通過主機名,還可以通過系統屬性

---------------------------------------------------------------------------------------------------------------------------

基本原理:

saltstack采用C/S模式,server端就是salt的master,clinet端minion,minion與master端之間通過zeroMQ消息列隊 通信;

Minion上線后先於master端聯系,把自己的pubkey發送過去

這是 master端通過salt-key-L命令就會看到minion的key,接受該minion-key后,也就是master與minion已經互信;

Master可以發送任何指令讓minion執行了,salt有很多可執行的模塊,比如說cmd模塊,

[root@localhost ~]# hostname Master.salt.com

root@Master ~]#  vim /etc/hosts

[root@Minion ~]# hostname   Minion.salt.com

[root@Minion ~]# vim /etc/hosts

關閉防火牆設置

[root@Master ~]# service iptables stop

 [root@Master ~]# chkconfig iptables off

root@Minion ~]# service iptables stop

 [root@Minion ~]# chkconfig iptables off

官方文檔epel源

https://repo.saltstack.com/

Master端配置

1.1准備並配置epel源

[root@Master yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

[root@Master yum.repos.d]# sudo yum clean expire-cache     #####更新緩存的

Loaded plugins: fastestmirror, refresh-packagekit, security

Cleaning repos: DVD epel salt-latest

3 metadata files removed

[root@Master yum.repos.d]# rpm -ql salt-master

/etc/rc.d/init.d/salt-master    #啟動腳本

/etc/salt/master        #master配置文件

/usr/bin/salt          #master的核心命令

/usr/bin/salt-cp      #master的文件傳輸命令

/usr/bin/salt-key      #salt文件傳輸命令

/usr/bin/salt-master   #salt證書管理命令

/usr/bin/salt-run   #master服務命令

/usr/bin/salt-unity  

[root@Master ~]# vim /etc/salt/master


root@Master ~]# cat /etc/salt/master | grep ^interface

interface: 192.168.20.138

啟動master

[root@Master ~]# service salt-master start

Starting salt-master daemon:                               [確定]

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

Minion端配置

[root@Minion yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

[root@Minion yum.repos.d]# sudo yum clean expire-cache

[root@Minion yum.repos.d]#  yum -y install salt-minion

1.2-編輯主配置文件

[root@Minion ~]# rpm -ql salt-minion

/etc/rc.d/init.d/salt-minion   #啟動腳本

/etc/salt/minion     #配置文件

/etc/salt/minion.d

/etc/salt/pki/minion

/etc/salt/proxy

/usr/bin/salt-call   #拉取命令

/usr/bin/salt-minion    #minion服務命令

/usr/bin/salt-proxy

[root@Minion ~]# vim /etc/salt/minion

[root@Minion ~]# grep "^master" /etc/salt/minion

 

Minion端配置

[root@Minion yum.repos.d]# sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm

[root@Minion yum.repos.d]# sudo yum clean expire-cache

[root@Minion yum.repos.d]#  yum -y install salt-minion

1.2-編輯主配置文件

[root@Minion ~]# rpm -ql salt-minion

/etc/rc.d/init.d/salt-minion   #啟動腳本

/etc/salt/minion     #配置文件

/etc/salt/minion.d

/etc/salt/pki/minion

/etc/salt/proxy

/usr/bin/salt-call   #拉取命令

/usr/bin/salt-minion    #minion服務命令

/usr/bin/salt-proxy

[root@Minion ~]# vim /etc/salt/minion

[root@Minion ~]# grep "^master" /etc/salt/minion

master: 192.168.20.138       #### 表示我們要連接的是saltstack的master是192.168.20.138


[root@Minion ~]# service salt-minion start

Starting salt-minion:root:Minion.salt.com daemon: OK

接下來我們需要測試saltsack

Master端配置

Saltstack使用SSL簽證 方式進行安全認證

1.查看 minion列表

root@Master ~]# salt-key –L   #查看當前證書的簽證情況

2.接受所有key

salt-key -a 'key-name' ##接受該key

或者salt-key -A        ##接受所有key

[root@Master ~]# salt-key -A

3.簡單的測試

測試1

[root@Master ~]# salt '*' test.ping

詳細解析:

‘*’代表的是target是指在那些minion上操作

‘test’是一個執行模塊

‘ping’是執行模塊下的函數

測試2

[root@Master ~]# salt '*' cmd.run 'df -h'   #檢查目標主機掛載

測試3.

所有minion安裝ftp服務

[root@Master ~]# salt '*' pkg.install ftp

[root@Master ~]# salt '*' pkg.install vsftpd

參數詳解:

Pkg是一個執行模塊

Install是一個模塊下面的參數

ftp是函數的參數(arg),有的函數需要參數,有的則不需要

 ------------------------------------------------------------------------------------------------------------------------------

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM