salt github地址:https://github.com/saltstack/salt
目前salt的幾個主要版本參見github里面的版本線圖,最新的是2017.7,貌似有點不太友好,可能不太兼容之前master的一些配置,當我直接從2015.10版本升級到2017.7的版本的時候,執行任務時報錯,且影響到之前的外部job store配置,報錯信息如下:
(1)Could not deserialize msgpack message.This often happens when trying
to read a file not in binary modeTo see message payload, enable debug logging
and retry. Exception: unpack(b) received extra data.
(2)KeyError: "Returner 'mysql' does not support function prep_jid"
將salt-master版本將至salt-master 2016.11.7時,沒有報錯信息產生,至於兼容性
怎么樣,有待觀察。
版本升級的動機:
由於最近在整理一些salt的官方文檔的時候,發現salt package manager的功能在
2015年的版本中沒有,比較了2015的文檔和2016年的文檔,之間的差異有些地方較大
為了便於以后功能提升和安全考慮盡量跟上官方的腳步吧。
salt包的下載地址:
(1)在官方站點下載,可選擇對應的平台
https://repo.saltstack.com/
(2)在github上下載
https://github.com/saltstack/salt/releases
(3)在系統yum里下載
https://repo.saltstack.com/2016.11.html#rhel
簡單介紹一下安裝:
(1)配置saltstack源:
1 [saltstack-repo] 2 name=SaltStack repo for RHEL/CentOS $releasever 3 baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest 4 enabled=1 5 gpgcheck=0
(2)配置某一版本的saltstack源
參見:https://repo.saltstack.com/2016.11.html#rhel
1 [salt-2016.11] 2 name=SaltStack 2016.11 Release Channel for RHEL/Centos $releasever 3 baseurl=https://repo.saltstack.com/yum/redhat/6/$basearch/2016.11 4 failovermethod=priority 5 enabled=1 6 gpgcheck=1 7 gpgkey=file:///etc/pki/rpm-gpg/saltstack-signing-key
設置域名解析能訪問公網即可使用。官方文檔查看方法:
https://docs.saltstack.com/en/2015.8/topics/spm/index.html#building-packages
將en后面日期的那部分替換成對應的版本即可查看對應的salt版本的說明文檔
遇見的一些故障的解決方法:
(1)2016.11版本執行命令的時候出現warning
[WARNING ] Cannot resolve address None info via socket: <class 'socket.gaierror'>
這是由於本地的主機名設置解析出了問題,使用如下python命令檢查:
python -c 'import socket, platform; print(socket.getfqdn()); print(socket.gethostname()); print(platform.node());'
在/etc/sysconfig/network文件中設置好主機民,在hosts文件中設置好解析,修改hostname變量即可解決此問題。
(2)在安裝salt-minion一些較高版本的時候可能會出現一些組件的版本依賴問題
之前有遇到過ZMQ的版本問題,導致salt-minion服務異常,又由於系統內部復雜的庫依賴關系導致安裝高版本的ZMQ很困難。
解決辦法:將其他系統已經安裝好的高版本ZMQ庫拷貝過來即可。
注意:salt-master提供向下兼容,最好是master的版本比minion端高或持平。
