Salt是一個(gè)基礎(chǔ)平臺(tái)管理工具,基于 python 語(yǔ)言開(kāi)發(fā)。SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion與master之間通過(guò)ZeroMQ消息隊(duì)列通信。master監(jiān)聽(tīng)4505和4506端口,4505為master和minion認(rèn)證通信端口,4506為master用來(lái)發(fā)送命令或者接收minion的命令執(zhí)行返回信息。
為雙灤等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及雙灤網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、雙灤網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!1、輕量級(jí)管理工具,批量執(zhí)行命令;
2、常用模板:
pkg:包,有增刪更新;
file:用于管理文件,包括同步文件、設(shè)置文件權(quán)限和所屬用戶組、刪除文件等操作;
cmd:在 minion 上執(zhí)行命令或者腳本;
user:管理系統(tǒng)賬戶操作;
service:管理系統(tǒng)服務(wù)操作;
cron:管理 crontab任務(wù)
3、saltstack 數(shù)據(jù)系統(tǒng):
Grains(靜態(tài)數(shù)據(jù));
pillar(動(dòng)態(tài)數(shù)據(jù));
4、三大功能:
(1)遠(yuǎn)程執(zhí)行
(2)配置管理
(3)云管理
(1)grains:
grains 是在 minion(客戶端)啟動(dòng)時(shí)收集到的一些信息,比如操作系統(tǒng)類(lèi)型、網(wǎng)卡ip等靜態(tài)信息。
grains 的信息并不是動(dòng)態(tài)的,并不會(huì)時(shí)時(shí)變更,它只是在 minion 啟動(dòng)時(shí)收集到的。
(2)pillar:
pillar 和 grains 不一樣,是在 master 上定義的,并且是針對(duì) minion 定義的一些信息。像一些比較重要的數(shù)據(jù)(密碼)可以存在 pillar 里,還可以定義變量等。
(3)state:
是 saltstack 的最核心的功能,通過(guò)預(yù)先指定好的 sls 文件對(duì) 被控主機(jī)進(jìn)行管理(包括:包、網(wǎng)絡(luò)配置、系統(tǒng)服務(wù)、系統(tǒng)用戶 等)
SaltStack 客戶端(Minion)在啟動(dòng)時(shí),會(huì)自動(dòng)生成一套密鑰,包含私鑰和公鑰。之后將公鑰發(fā)送給服務(wù)器端,服務(wù)器端驗(yàn)證并接受公鑰,以此來(lái)建立可靠且加密的通信連接。同時(shí)通過(guò)消息隊(duì)列 ZeroMQ 在客戶端與服務(wù)端之間建立消息發(fā)布連接。
1、Minion 是 SaltStack 需要管理的客戶端安裝組件,會(huì)主動(dòng)去連接 Master 端,并從 Master 端得到資源狀態(tài)信息,同步資源管理信息。
2、Master 作為控制中心運(yùn)行在主機(jī)服務(wù)器上,負(fù)責(zé) Salt 命令運(yùn)行和資源狀態(tài)的管理,Master 上執(zhí)行某條指令通過(guò)隊(duì)列下發(fā)到各個(gè) Minions 去執(zhí)行,并返回結(jié)果。
3、ZeroMQ 是一款開(kāi)源的消息隊(duì)列軟件,用于在 Minion 端與 Master 端建立系統(tǒng)通信橋梁。
1、管理配置講究的是更快更穩(wěn)
ansible基于SSH協(xié)議傳輸數(shù)據(jù);Saltstack使用消息隊(duì)列zeroMQ傳輸數(shù)據(jù),速度更快,是ssh的40倍。
2、ansible安裝部署過(guò)程特別簡(jiǎn)單,saltstack要部署 minion 端較為不便。
1、修改主機(jī)名
修改主機(jī)名:
[root@localhost ~]# hostnamectl set-hostname master.saltstack.com
[root@localhost ~]# hostnamectl set-hostname web01.saltstack.com
[root@localhost ~]# hostnamectl set-hostname web02.saltstack.com
修改 /etc/hosts文件(用scp遠(yuǎn)程復(fù)制,三臺(tái)主機(jī)都一樣):
vim /etc/hosts
192.168.220.131 master.saltstack.com
192.168.220.140 web01.saltstack.com
192.168.220.136 web02.saltstack.com
關(guān)閉防火墻:
systemctl stop firewalld.service
setenforce 0
分別為三臺(tái)主機(jī)添加epel源:
yum install -y epel-release
2、安裝 saltstack:
1、master上安裝:
yum install -y salt-master
2、被管理端(minion)上安裝:
yum install -y salt-minion
3、配置 master主機(jī):
vim /etc/salt/master
interface: 192.168.220.131 //修改監(jiān)聽(tīng)地址(master的地址)
auto_accept: True //修改為true,避免要運(yùn)行salt-key來(lái)確定證書(shū)認(rèn)證
file_roots: //開(kāi)啟saltstack文件根目錄位置,此目錄需要自己創(chuàng)建
base:
- /srv/salt
nodegroups: //開(kāi)啟、設(shè)置組分類(lèi)
group1: 'web01.saltstack.com'
group2: 'web02.saltstack.com'
pillar_opts: True //開(kāi)啟pillar功能,同步文件功能
pillar_roots: //開(kāi)啟pillar主目錄,這個(gè)也需要自己創(chuàng)建
base:
- /srv/pillar
4、開(kāi)啟服務(wù):
[root@master ~]# systemctl start salt-master.service
[root@master ~]# netstat -napt | egrep '4506|4505'
tcp 0 0 192.168.220.131:4505 0.0.0.0:* LISTEN 68112/python
tcp 0 0 192.168.220.131:4506 0.0.0.0:* LISTEN 68136/python
(5)配置 minino 端:
vim /etc/salt/minino
第一臺(tái):
master: 192.168.220.131 //第16行,指定主控端IP地址
id: web01.saltstack.com //第78行,指定被控制端的主機(jī)名
第二臺(tái):
master: 192.168.220.131
id: web02.saltstack.com
systemctl start salt-minion.service //開(kāi)啟服務(wù)
(6)在主控端測(cè)試與被控端的通信狀態(tài)
[root@master ~]# salt '*' test.ping //查看通信狀態(tài)
web01.saltstack.com:
True
[root@master ~]# salt '*' test.ping
web01.saltstack.com:
True
web02.saltstack.com:
True
salt '*' cmd.run 'df -h' //查看所有被管理段的掛載情況
[root@master ~]# salt-key //查看在master上已經(jīng)被接受過(guò)的客戶端
Accepted Keys:
web01.saltstack.com
web02.saltstack.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:
查看被監(jiān)控主機(jī)上grains所有值(每次minino在啟動(dòng)時(shí)都會(huì)獲取客戶端信息):
salt 'web01.saltstack.com' grains.items (靜態(tài)數(shù)據(jù))
salt 'web01.saltstack.com' pillar.items (動(dòng)態(tài)數(shù)據(jù))
(7)開(kāi)始批量安裝Apache服務(wù):
下面演示的是遠(yuǎn)程通過(guò) yum 安裝 Apache :
mkdir /srv/salt
vim /srv/salt/top.sls
base:
'*':
- apache
//注意:'*',則表示在所有的客戶端執(zhí)行 apache 模塊。
vim /srv/salt/apache.sls
apache-service:
pkg.installed:
- names: // 如果只有一個(gè)服務(wù),那么就可以寫(xiě)成 – name: httpd 不用再換一行
- httpd
- httpd-devel
service.running:
- name: httpd
- enable: True
//注意:apache-service 是自定義的 id 名。pkg.installed 為包安裝函數(shù),下面是要安裝的包的名字。service.running 也是一個(gè)函數(shù),來(lái)保證指定的服務(wù)啟動(dòng),enable 表示開(kāi)機(jī)啟動(dòng)。
systemctl restart salt-master //重啟服務(wù)
salt '*' state.highstate //執(zhí)行刷新state配置命令
接下來(lái),去兩臺(tái) minino上驗(yàn)證一下 httpd是否安裝成功:
本文題目:saltstack安裝管理——批量部署apache-創(chuàng)新互聯(lián)
路徑分享:http://aaarwkj.com/article6/cojhig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站營(yíng)銷(xiāo)、域名注冊(cè)、響應(yīng)式網(wǎng)站、網(wǎng)站排名、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容