中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

saltstack安裝管理——批量部署apache

發布時間:2020-07-27 10:24:43 來源:網絡 閱讀:939 作者:wx5d3faba330584 欄目:系統運維

簡介

Salt是一個基礎平臺管理工具,基于 python 語言開發。SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion與master之間通過ZeroMQ消息隊列通信。master監聽4505和4506端口,4505為master和minion認證通信端口,4506為master用來發送命令或者接收minion的命令執行返回信息。

saltstack 介紹:

1、輕量級管理工具,批量執行命令;

2、常用模板:

pkg:包,有增刪更新;
file:用于管理文件,包括同步文件、設置文件權限和所屬用戶組、刪除文件等操作;
cmd:在 minion 上執行命令或者腳本;
user:管理系統賬戶操作;
service:管理系統服務操作;
cron:管理 crontab任務
3、saltstack 數據系統:

Grains(靜態數據);
pillar(動態數據);
4、三大功能:
(1)遠程執行
(2)配置管理
(3)云管理

重要組件:

(1)grains:

grains 是在 minion(客戶端)啟動時收集到的一些信息,比如操作系統類型、網卡ip等靜態信息。
grains 的信息并不是動態的,并不會時時變更,它只是在 minion 啟動時收集到的。
(2)pillar:

pillar 和 grains 不一樣,是在 master 上定義的,并且是針對 minion 定義的一些信息。像一些比較重要的數據(密碼)可以存在 pillar 里,還可以定義變量等。
(3)state:

是 saltstack 的最核心的功能,通過預先指定好的 sls 文件對 被控主機進行管理(包括:包、網絡配置、系統服務、系統用戶 等)

工作原理:

SaltStack 客戶端(Minion)在啟動時,會自動生成一套密鑰,包含私鑰和公鑰。之后將公鑰發送給服務器端,服務器端驗證并接受公鑰,以此來建立可靠且加密的通信連接。同時通過消息隊列 ZeroMQ 在客戶端與服務端之間建立消息發布連接。
saltstack安裝管理——批量部署apache

1、Minion 是 SaltStack 需要管理的客戶端安裝組件,會主動去連接 Master 端,并從 Master 端得到資源狀態信息,同步資源管理信息。
2、Master 作為控制中心運行在主機服務器上,負責 Salt 命令運行和資源狀態的管理,Master 上執行某條指令通過隊列下發到各個 Minions 去執行,并返回結果。
3、ZeroMQ 是一款開源的消息隊列軟件,用于在 Minion 端與 Master 端建立系統通信橋梁。

與ansible區別:

1、管理配置講究的是更快更穩
ansible基于SSH協議傳輸數據;Saltstack使用消息隊列zeroMQ傳輸數據,速度更快,是ssh的40倍。
2、ansible安裝部署過程特別簡單,saltstack要部署 minion 端較為不便。

實操——批量安裝 Apache服務

saltstack安裝管理——批量部署apache
1、修改主機名

修改主機名:
[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遠程復制,三臺主機都一樣):
vim /etc/hosts
192.168.220.131 master.saltstack.com
192.168.220.140 web01.saltstack.com
192.168.220.136 web02.saltstack.com

關閉防火墻:
systemctl stop firewalld.service
setenforce 0

分別為三臺主機添加epel源:
yum install -y epel-release

2、安裝 saltstack:

1、master上安裝:
yum install -y salt-master

2、被管理端(minion)上安裝:
yum install -y salt-minion

3、配置 master主機:

vim  /etc/salt/master 

interface: 192.168.220.131   //修改監聽地址(master的地址)
auto_accept: True            //修改為true,避免要運行salt-key來確定證書認證

file_roots:                  //開啟saltstack文件根目錄位置,此目錄需要自己創建
   base:
     - /srv/salt

nodegroups:                  //開啟、設置組分類
   group1: 'web01.saltstack.com'
   group2: 'web02.saltstack.com'

pillar_opts: True            //開啟pillar功能,同步文件功能

pillar_roots:                //開啟pillar主目錄,這個也需要自己創建
   base:
     - /srv/pillar

saltstack安裝管理——批量部署apache
4、開啟服務:

[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
第一臺:
master: 192.168.220.131        //第16行,指定主控端IP地址
id: web01.saltstack.com        //第78行,指定被控制端的主機名
第二臺:
master: 192.168.220.131       
id: web02.saltstack.com 

systemctl start salt-minion.service   //開啟服務

(6)在主控端測試與被控端的通信狀態

[root@master ~]# salt '*' test.ping   //查看通信狀態
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上已經被接受過的客戶端
Accepted Keys:
web01.saltstack.com
web02.saltstack.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:

查看被監控主機上grains所有值(每次minino在啟動時都會獲取客戶端信息):
salt 'web01.saltstack.com' grains.items (靜態數據)
salt 'web01.saltstack.com' pillar.items (動態數據)

(7)開始批量安裝Apache服務:
下面演示的是遠程通過 yum 安裝 Apache :

mkdir /srv/salt

vim /srv/salt/top.sls
base:
  '*':    
    - apache
//注意:'*',則表示在所有的客戶端執行 apache 模塊。

vim /srv/salt/apache.sls
apache-service:
  pkg.installed:
    - names:                // 如果只有一個服務,那么就可以寫成 – name: httpd 不用再換一行
      - httpd
      - httpd-devel
  service.running:
    - name: httpd
    - enable: True
//注意:apache-service 是自定義的 id 名。pkg.installed 為包安裝函數,下面是要安裝的包的名字。service.running 也是一個函數,來保證指定的服務啟動,enable 表示開機啟動。

saltstack安裝管理——批量部署apache
saltstack安裝管理——批量部署apache

systemctl restart salt-master    //重啟服務
salt '*' state.highstate         //執行刷新state配置命令

saltstack安裝管理——批量部署apache
saltstack安裝管理——批量部署apache
接下來,去兩臺 minino上驗證一下 httpd是否安裝成功:
saltstack安裝管理——批量部署apache
saltstack安裝管理——批量部署apache

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新建县| 肥城市| 新野县| 本溪市| 同德县| 揭东县| 万载县| 平乡县| 固原市| 苍山县| 张掖市| 利津县| 会泽县| 伊金霍洛旗| 莱西市| 施甸县| 碌曲县| 张家川| 页游| 岐山县| 青浦区| 新营市| 容城县| 金乡县| 武冈市| 西平县| 色达县| 柳江县| 巢湖市| 吉林市| 靖州| 山阳县| 施秉县| 九寨沟县| 天等县| 胶南市| 呼和浩特市| 黄大仙区| 聂拉木县| 平原县| 庄浪县|