官方指南
https://docs.saltstack.com/en/2016.11/topics/installation/rhel.html#installation-rhel-repo
要求
版本 20150510
安裝方式
yum 安裝
- 設(shè)置阿里yum源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
- 安裝epel
yum install -y epel-release
- 安裝指定salt的版本
yum install -y salt-minion-2015.5.10-2.el7.noarch
關(guān)于版本查找,請搜阿里源
https://opsx.alibaba.com/mirror?lang=zh-cn
手動安裝
salt 官網(wǎng)下載 20150510的客戶端包
修改salt配置
vi /etc/salt/minion
master: 192.168.6.23 # master ip
id: 192.168.6.24 #客戶端ip
root_dir: /
pki_dir: /etc/salt/pki/minion
ipc_mode: ipc
multiprocessing: False
啟動salt-minion
systemctl start salt-minion
RHEL/CentOS下安裝SaltStack
對于Centos和RedHat用戶,使用yum安裝時最直接和快捷的狮杨。首先需要安裝EPEL倉庫。
yum -y install epel-release
Salt Master安裝
[root@master ~]#yum install -y salt-master python-setproctitle
Salt Master啟動
[root@master ~]#/etc/init.d/salt-master start
或
[root@master ~]#systemctl start salt-master
Salt Master加入開機啟動
[root@master ~]# chkconfig salt-master on
或
[root@master ~]# systemctl enable salt-master
Salt Minion安裝
[root@minion ~]#yum install -y salt-minion
Salt Minion 啟動
[root@minion ~]#/etc/init.d/salt-minion start
或
[root@minion ~]#systemctl start salt-minion
Salt Minion 加入開機啟動
[root@minion ~]#chkconfig salt-minion on
或
[root@minion ~]#systemctl enable salt-minion
服務(wù)端日志
[root@master ~]# tail -f /var/log/salt/master
客戶端日志:
[root@minion ~]# tail -f /var/log/salt/minion
Ubuntu下安裝SaltStack
添加salt倉庫
sudo add-apt-repository ppa:saltstack/salt
sudo apt-get update
安裝master
sudo apt-get install salt-master
安裝minion
sudo apt-get install salt-minion
Salt配置文件
Salt Master配置
Master端的配置是修改/etc/salt下master配置文件逸邦。以下是Master端常用的配置渣窜。
interface: 指定bind 的地址(默認(rèn)為0.0.0.0)
publish_port: 指定發(fā)布端?(默認(rèn)為4505)
ret_port: 指定結(jié)果返回端?, 與minion配置?件中的master_port對應(yīng)(默認(rèn)為4506)
user: 指定master 進(jìn)程的運??戶, 如果調(diào)整, 則需要調(diào)整部分目錄的權(quán)限(默認(rèn)為root)
timeout: 指定timeout時間, 如果minion規(guī)模龐?或?絡(luò)狀況不好,建議增?該值(默認(rèn)5s)
keep_jobs: 默認(rèn)情況下, minion 會執(zhí)?結(jié)果會返回master, master會緩存到本地的cachedir ?錄, 該參數(shù)指定緩存多?時間, 以供查看之前的執(zhí)?結(jié)果, 會占?磁盤空間(默認(rèn)為24h)
job_cache: master 是否緩存執(zhí)?結(jié)果, 如果規(guī)模龐?(超過5000臺), 建議使?其他?式來存儲jobs, 關(guān)閉本選項(默認(rèn)為True)
file_recv : 是否允許minion傳送?件到master 上(默認(rèn)是Flase)
file_roots: 指定file server?錄, 默認(rèn)為:
file_roots:
base:
- /srv/salt
pillar_roots : 指定pillar ?錄, 默認(rèn)為:
pillar_roots:
base:
- /srv/pillar
log_level: 執(zhí)??志級別, ?持的?志級別有'garbage', 'trace', 'debug', info', 'warning', 'error', ‘critical ’ ( 默認(rèn)為’warning’)
Salt Minion配置
Minion端配置非常簡單器一,一般只需要修改兩個配置即可捐腿。
[root@minion ~]# vim /etc/salt/minion
master: 192.168.56.111 (修改master為master的IP地址)
id: (客戶端的id纵朋。默認(rèn)不設(shè)置會取客戶端的FQDN主機名)
Minion常用配置
master: 指定master 主機(默認(rèn)為salt)
master_port: 指定認(rèn)證和執(zhí)?結(jié)果發(fā)送到master 的哪個端?, 與master 配置?件中的ret_port 對應(yīng)(默認(rèn)
為4506)
id: 指定本minion的標(biāo)識. salt內(nèi)部使?id 作為標(biāo)識(默認(rèn)為主機名)
user: 指定運?minion的?戶. 由于安裝包,啟動服務(wù)等操作需要特權(quán)?戶, 推薦使?root( 默認(rèn)為root)
cache_jobs : minion 是否緩存執(zhí)?結(jié)果(默認(rèn)為False)
backup_mode: 在?件操作(file.managed 或file.recurse) 時, 如果?件發(fā)?變更,指定備份?標(biāo). 當(dāng)前有效
的值為minion, 備份在cachedir/file_backups?錄下, 以原始?件名稱加時間戳來命名(默認(rèn)為Disabled)
providers : 指定模塊對應(yīng)的providers, 如在RHEL系列中, pkg對應(yīng)的providers 是yumpkg5
renderer: 指定配置管理系統(tǒng)中的渲染器(默認(rèn)值為:yaml_jinja )
file_client : 指定file clinet 默認(rèn)去哪?(remote 或local) 尋找?件(默認(rèn)值為remote)
loglevel: 指定?志級別(默認(rèn)為warning)
tcp_keepalive : minion 是否與master 保持keepalive 檢查, zeromq3 以下版本存在keepalive bug,會導(dǎo)致某些情況下連接異常后minion?法重連master. 建議有條件的話升級到zeromq 3以上版本(默認(rèn)為True)
SaltStack認(rèn)證
Salt的數(shù)據(jù)傳輸是通過AES加密的,Master和Minion之間在通信之前茄袖,需要進(jìn)行認(rèn)證操软。通過認(rèn)證的方式保證安全性,完成一次認(rèn)證后宪祥,Master就可以自由的控制Minion來完成各項工作了聂薪。了解了認(rèn)證的詳細(xì)有助于我們在日常管理中管理Minion,已經(jīng)及時處理問題品山。
- minion在第一次啟動時,會在/etc/salt/pki/minion/(該路徑在/etc/salt/minion里面設(shè)置)下自動生成minion.pem(private key)和minion.pub(public key)烤低,然后將minion.pub發(fā)送給master肘交。
- master在第一次啟動時,會在
/etc/salt/pki/master
下自動生成master.pem
和master.pub
扑馁。在接收到minion的public key后涯呻,通過salt-key命令accept minion public key
,這樣在master的/etc/salt/pki/master/minions
下的將會存放以minion id命名的public key, 客戶端會保存一份master的public key腻要,在/etc/salt/pki/minion_master.pub
- 通過兩個步驟的驗證复罐,master就能對minion發(fā)送指令了。
Master端Key認(rèn)證
在上面一個小節(jié)已經(jīng)提到了Master與Minion的認(rèn)證方式雄家,只有Master接受了Minion的Key后效诅,才能進(jìn)行管理。具體的認(rèn)證命令為salt-key趟济,常用的有如下命令。
-a ACCEPT, --accept=ACCEPT Accept the following key
-A, --accept-all Accept all pending keys
-r REJECT, --reject=REJECT Reject the specified public key
-R, --reject-all Reject all pending keys
-d DELETE, --delete=DELETE Delete the named key
-D, --delete-all Delete all keys
例:查看需要認(rèn)證的Minion:
[root@master ~]# salt-key
Accepted Keys:
Unaccepted Keys:
minion.example.com
Rejected Keys:
認(rèn)證Minion:
[root@master ~]# salt-key --accept=*
The following keys are going to be accepted:
Unaccepted Keys:
minion.example.com
Proceed? [n/Y] Y
Key for minion minion.example.com accepted.