Saltstack 服務器基本安裝


 

Salt介紹

Salt是一個基礎平台管理工具

Salt是一個配置管理系統,能夠維護預定義狀態的遠程節點

Salt是一個分布式遠程執行系統,用來在遠程節點上執行命令和查詢數據

 

Salt核心功能

使命令發送到遠程系統是並行的而不是串行的

使用安全加密的協議

使用最小最快的網絡載荷

提供簡單的編程接口

 

Salt有點

Saltstack是用python語音編寫 相當於設備是輕量級別的

Saltstack通訊采用ZEROMQ實現使得它很快速

Saltstack是開源的 通過python可以自己寫模塊

 

Salt端口說明

Salt-master啟動時會啟動兩個端口

4505:為salt的消息發布專用端口

4506:為客戶端與服務端通信的端口

 

 由於SaltStack是一種基於C/S架構的服務模式,可以簡單地理解為如果我們想使用SaltStack就需要在現有的環境下引入與維護一套C/S架構。在SaltStack架構中服務器端叫作Master,客戶端叫作Minion,我們理解的傳統C/S架構中,客戶端發送請求給服務器端,服務器端接收到請求並且處理完成后再返回給戶端。在SaltStack架構中不僅有傳統的C/S架構服務模式,而且有消息隊列中的發布與訂閱(pub/sub)模式。這使得SaltStack應用場景更加豐富。目前在實際環境中一般使用SaltStack的C/S架構進行配置管理。

 

在Master和Minion端都是以守護進程的模式運行,一直監聽配置文件里面定義的ret_port(接受

minion請求)和publish_port(發布消息)的端口。當Minion運行時會自動連接到配置文件里面定義的

Master地址ret_port端口進行連接認證。默認客戶端請求id是socket.getfqdn()取到的值,也可以在

Minion啟動之前修改Minion的id值

 

參考的技術網站

http://docs.saltstack.cn/

 

http://www.saltstack.cn/

 

salt功能模塊

  • 遠程執行
  • 配置管理
  • 雲管理

 

 

環境說明

 

角色        主機名             IP

salt-server   hzbj-salt-020         192.168.56.20

tomcat-A    hzbj-tomcat-021         192.168.56.21

tomcat-B    hzbj-tomcat-022         192.168.56.22

 

一 安裝EPEL

由於目前RHEL官網yum源沒有Saltstack的安裝包,因此先安裝EPEL作為部署Saltstack的默認源

[root@hzbj-salt-020 ~]# rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm

 

二 安裝saltstack主服務器

[root@hzbj-salt-020 ~]# yum -y install salt-master [root@hzbj-salt-020 ~]# chkconfig salt-master on [root@hzbj-salt-020 ~]# service salt-master start

 

三 被控制端安裝(minion端)

[root@hzbj-tomcat-021 ~]# yum -y install salt-minion [root@hzbj-tomcat-021 ~]# chkconfig salt-minion on [root@hzbj-tomcat-021 ~]# service salt-minion start

 

四 saltstack防火牆配置

    如果服務器開啟了防火牆 需要開啟端口 在主控端添加TCP 4505 4506的規則,而在被控端無需配置防火牆,原理是

被控端直接與主控端的zeromq建立長鏈接,接收廣播到的任務信息 並執行,具體操作是添加兩條iptables規則

[root@hzbj-salt-020 ~]# iptables -I INPUT -m state --state new -m tcp --dport 4505 -j ACCEPT [root@hzbj-salt-020 ~]# iptables -I INPUT -m state --state new -m tcp --dport 4506 -j ACCEPT

 

五 saltstack配置及安裝校驗

    Saltstack分兩種角色,一種為master(主控端),另一種是minion(被控端),安裝完畢后需要對兩種

角色的配置文件進行修改,下面具體說明。

a) master主控制端配置

更新主控制端關鍵項配置:

[root@hzbj-salt-020 ~]# vim /etc/salt/master #綁定Master通信IP interface192.168.56.20 #自動認證 你也可以選擇不用開啟 auto_accept: True #指定saltstack文件根目錄位置 file_roots: base: - /srv/salt

b)重啟saltstack 服務器

[root@hzbj-salt-020 ~]# service salt-master restart

 

c)minion被控端配置

#/etc/salt/minion #指定master主機IP地址 master: 192.168.56.20 #修改被控端主句識別id,建議使用操作系統主機名來配置 id: hzbj-tomcat-021 其它主機也是這樣配置

 

d)重啟minion端

service salt-minion restart

 

e)校驗安裝結果

    通過test模塊的ping方法,可以確認指定被控端設備與主控端是否建立信任關系及連通性是否正常,探測所有被控端采用‘*’來代替

[root@hzbj-salt-020 ~]# salt '*' test.ping hzbj-tomcat-021: True hzbj-tomcat-022: True

 

六 master和minion認證過程
(1)、minion在第一次啟動時,會在/etc/salt/pki/minion/(該路徑在/etc/salt/minion里面設置)下自動生成minion.pem(private key)和 minion.pub(public key),

然后將 minion.pub發送給master。
(2)、master在接收到minion的public key后,通過salt-key命令accept minion public key,這樣在master的/etc/salt/pki/master/minions下的將會存放以minion id

命名的 public key,然后master就能對minion發送指令了。

 

 

七 Master與Minion的連接
(1)、SaltStack master啟動后默認監聽4505和4506兩個端口。4505(publish_port)為saltstack的消息發布系統,4506(ret_port)為saltstack客戶端與服務端通信

的端口。如果使用lsof 查看4505端口,會發現所有的minion在4505端口持續保持在ESTABLISHED狀態。

 

提示  當/etc/salt/master沒有配置auto_accept: True時,需要通過salt-key命令來進行證書認證操作,具體操心如下:

  • salt-key -L, 顯示已經或未認證的被控端id,Accepted Keys為已經認證清單,Unaccepted Keys為未認證清單;
  • salt-key -D,刪除所有認證主機ID證書
  • salt-key -d id,刪除單個id證書
  • salt-key -A,接受所有id證書請求
  • salt-key -a id,接受單個id證書請求

 


免責聲明!

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



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