日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

自动化运维之 部署Saltstack 并批量部署 Nginx

發布時間:2024/2/28 Nginx 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动化运维之 部署Saltstack 并批量部署 Nginx 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Saltstack 原理

???????? Saltstack由Master和Minion構成,master是服務端,表示一臺服務器;minion是客戶服務端,表示多臺服務器。在Master 上發送命令給符合條件的 Minion,Minion 就會執行響應的命令,Master和Minion之間通過ZeroMQ(消息隊列)進行通信。
???????? Saltstack的master端監聽4505和4506端口,4505為master和 Minion 認證通信端口,4506為 Master 用來發送命令或接收Minion的命令執行返回信息。
????????? 當客戶端啟動后,會主動連接 Master 端注冊,然后一直保持該TCP連接,而 Master 通過這條TCP連接對客戶端進行控制。如果連接斷開,Master 對客戶端將不能進行控制。但是,當客戶端檢查到連接斷開后,會定期向 Master 端請求注冊連接。

Saltstack 常用模塊

? Saltstack 提供了非常多的功能模塊,以便于對操作系統的基礎功能和常用工具的操作。

(1)pkg 模塊

pkg 模塊的作用是包管理,包括增刪更新。

(2)file 模塊

file 模塊的作用是管理文件操作,包括同步文件、設置文件權限和所屬用戶組、刪除文件等操作。

(3)cmd 模塊

cmd 模塊的作用是在 Minion 上執行命令或腳本。

(4)user 模塊

user 模塊的作用是管理系統賬戶操作。

(5)service 模塊

service 模塊的作用是管理系統服務操作。

(6)cron 模塊

cron 模塊的作用是管理 cron 服務操作。

部署環境

三臺服務器參數如表所示。

?

角色 ?主機名??ip地址所需的軟件包
mastermaster.saltstack.com?192.168.66.140saltstack-master
minionweb01.saltstack.com192.168.66.143saltstack-minion
minionweb02.saltstack.com?192.168.66.144

saltstack-minio

操作步驟

一 . 部署前的準備工作。

1. 更改主機名,修改 hosts 文件(分別在三臺服務器上操作),配置完成后,重新啟動主機,主機名才可以生效。

vim /etc/hostname
master.saltstack.com

[root@localhost ~]# vim /etc/hosts

192.168.66.140 master.saltstack.com
192.168.66.143 web01.saltstack.com
192.168.66.144 web02.saltstack.com

關閉防火墻

[root@master ~]# systemctl stop firewalld.service?
[root@master ~]# setenforce 0

2.在三臺服務器上都需要安裝 epel 源,因為后面需要安裝 Saltstack 服務端和客戶端。

[root@master ~]# yum install epel-release –y

[root@web01 ~]# yum install epel-release -y

[root@web02 ~]# yum install epel-release –y

二 . 部署 Saltstack 主控端(也就是master)。

1 . 部署 salt-master? 軟件包

[root@master ~]# yum install salt-master –y

2.配置主控端配置文件 /etc/salt/master

[root@master ~]# vim /etc/salt/master

15 interface: 192.168.66.140????????????????????????????? //修改監聽地址(master)

215 auto_accept:?True????????????????????

修改第215行的主控端會自動認證被控端的認證,只有被控端在設置完主控端的 IP 地址后啟動服務,主控端就會運行被控端自動認證,以避免以后每次都需要運行 salt-key 來確認證書信任。

416?file_roots:????????????????????????????????????? //saltastack 文件根目錄位置,注意這個目錄默認是沒有的,需要創建。
417?? base:
418?????- /srv/salt

710 nodegroups:???????????????????????????????? //修改組分類
711???group1: 'web01.saltstack.com'
712???group2: 'web02.saltstack.com'

552 pillar_opts:?True??????????????????????????? //開啟 pillar 功能??????????

529?pillar_roots:?????????????????????????????????? //pillar 的主目錄,注意這個目錄默認是沒有的,需喲創建。
530?? base:
531????- /srv/pillar

過濾查看修改的配置文件內容

[root@master ~]# cat /etc/salt/master | grep -v ^$ | grep -v ^#
interface: 192.168.66.140
auto_accept: True
file_roots:
?? base:
???? - /srv/salt
pillar_roots:
?? base:
???? - /srv/pillar
pillar_opts: True
nodegroups:
?? group1: 'web01.saltstack.com'
?? group2: 'web02.saltstack.com'

3.主控端做完上述操作后啟動 salt-master 服務,并查看端口

[root@master ~]# systemctl start salt-master
[root@master ~]# netstat -ntap | egrep '4505|4506'
tcp??????? 0????? 0 192.168.66.140:4505???? 0.0.0.0:*?????????????? LISTEN????? 1987/python?????????
tcp??????? 0????? 0 192.168.66.140:4506???? 0.0.0.0:*?????????????? LISTEN????? 2001/python???

創建 salt 文件根目錄及 pillar 目錄

[root@master ~]# mkdir /srv/salt

[root@master ~]# mkdir /srv/pillar

三 . 部署 Saltstack 被控端 (也就是兩臺 minion)

1.安裝 salt-minion 軟件包

[root@web01 ~]# yum install salt-minion –y

2 . 配置兩臺被控端配置和文件 /etc/salt/minion

[root@web01 ~]# vim /etc/salt/minion

16 master:?192.168.66.140????????????????????????? //指定主控端 IP

78?id: web01.saltstack.com????????????????????????? //指定被控主機名,另一臺是 web02.saltstack.com

3. 分別啟動兩臺被控端服務

[root@web01 ~]# systemctl start salt-minion.service

[root@web02 ~]# systemctl start salt-minion.service

?

???????此時控制端和被控制端的配置以及完成,并啟動服務。在主控端上做一個簡單測試一下主控端和被控端的通信狀態,如果返回都是True ,則說明正常。注意這里的 ping 和我們平常的 ping 命令不同,它只是 test 類下面的一個方法而已,用來驗證主控端和被控端的通信狀態。注意 * 表示所有通過認證的被控端,還可以支持其他很多正則表達式的匹配。

[root@master ~]# salt '*' test.ping
web02.saltstack.com:
???? True
web01.saltstack.com:
????True

?

查看秘鑰

[root@master ~]# salt-key
Accepted Keys:
web01.saltstack.com
web02.saltstack.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:

查看被控端主機掛載情況

[root@master ~]# salt '*' cmd.run 'df –h'???????????????? //使用 cmd 模塊
web02.saltstack.com:
???? Filesystem????? Size? Used Avail Use% Mounted on
???? /dev/sda2??????? 20G? 3.5G?? 17G? 18% /
???? devtmpfs??????? 978M???? 0? 978M?? 0% /dev
???? tmpfs?????????? 993M?? 12K? 993M?? 1% /dev/shm
???? tmpfs?????????? 993M? 9.0M? 984M?? 1% /run
???? tmpfs?????????? 993M???? 0? 993M?? 0% /sys/fs/cgroup
???? /dev/sda5?????? 5.0G?? 33M? 5.0G?? 1% /opt
???? /dev/sda3??????? 10G?? 37M?? 10G?? 1% /home
???? /dev/sda1?????? 997M? 158M? 839M? 16% /boot
???? tmpfs?????????? 199M?? 12K? 199M?? 1% /run/user/42
???? tmpfs?????????? 199M???? 0? 199M?? 0% /run/user/0
web01.saltstack.com:
???? Filesystem????? Size? Used Avail Use% Mounted on
???? /dev/sda2??????? 20G? 3.8G?? 17G? 19% /
???? devtmpfs??????? 978M???? 0? 978M?? 0% /dev
???? tmpfs?????????? 993M?? 12K? 993M?? 1% /dev/shm
???? tmpfs?????????? 993M? 9.0M? 984M?? 1% /run
???? tmpfs?????????? 993M???? 0? 993M?? 0% /sys/fs/cgroup
???? /dev/sda3??????? 10G?? 37M?? 10G?? 1% /home
???? /dev/sda1????? 1014M? 158M? 857M? 16% /boot
???? /dev/sda5??????? 10G?? 33M?? 10G?? 1% /opt
???? tmpfs?????????? 199M?? 12K? 199M?? 1% /run/user/42
???? tmpfs?????????? 199M???? 0? 199M?? 0% /run/user/0

通過下面的命令可以查看被控機 web01 主機上的 grains 所有值

[root@master ~]#?salt 'web01.saltstack.com' grains.items
web01.saltstack.com:
???? ----------
???? SSDs:
???? biosreleasedate:
???????? 05/19/2017
???? biosversion:
???????? 6.00
???? cpu_flags:
???????? - fpu
???????? - vme
???????? - de
???????? - pse
???????? - tsc
???????? - msr
???????? - pae
???????? - mce
???????? - cx8
???????? - apic
???????? - sep
???????? - mtrr
???????? - pge
???????? - mca
???????? - cmov
???????? - pat
???????? - pse36
???????? - clflush
???????? - mm

????????? …….

???????? grains 是 Saltstack 的重要組件之一,可以收集被控主機的基本信息,如 cpu 、內核、操作系統、虛擬化等靜態數據。在服務端可以利用這些信息對不同被控主機進行個性化配置。

四 . Saltstack 批量部署 apache(在控制端)

[root@master srv]# vim /srv/salt/top.sls?????????? // 在 /srv/salt 目錄下,創建管理性文件 top.sls ,文件名以sls結尾

base:???????????? //基本操作
?? '*':?????????????? //表示所有被控主機
??? - apache??? //所有主機執行 apache

注意:‘*’ ,表示在所有的客戶端執行 apache 模塊

在創建一個 apache.sls 文件

[root@master srv]# vim apache.sls

apache-service:
??? pkg.installed:???????????? //執行apache 的安裝操作
?????? - names:?????????????????? //需要安裝的軟件包有 httpd?? 、httpd-devel
????????- httpd
???????? - httpd-devel
??? service.running:
?????? - name: httpd
?????? - enable: True

重啟服務

[root@master salt]# systemctl restart salt-master

在主控端執行刷新state 配置命令,讓兩臺被控端去執行安裝 apache

[root@master salt]#?salt '*' state.highstate
web01.saltstack.com:
----------
?????????? ID: apache-service
???? Function: pkg.installed
???????? Name: httpd
?????? Result: True
????? Comment: The following packages were installed/updated: httpd
????? Started: 13:44:05.771181
???? Duration: 56803.894 ms
????? Changes:??

……….

web02.saltstack.com:
----------
?????????? ID: apache-service
???? Function: pkg.installed
???????? Name: httpd
?????? Result: True
????? Comment: The following packages were installed/updated: httpd
????? Started: 13:44:05.140861
???? Duration: 87107.738 ms
????? Changes:??

在被控制端查看安裝情況

[root@web01 ~]# rpm -q httpd
httpd-2.4.6-80.el7.centos.1.x86_64
[root@web01 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
??? Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
??? Active: active (running) since 四 2018-10-25 13:45:59 CST; 6min ago
????? Docs: man:httpd(8)
??????????? man:apachectl(8)
? Main PID: 38811 (httpd)
??? Status: "Total requests: 0; Current requests/sec: 0; Current traffic:?? 0 B/sec"
??? CGroup: /system.slice/httpd.service
??????????? ├─38811 /usr/sbin/httpd -DFOREGROUND
??????????? ├─38812 /usr/sbin/httpd -DFOREGROUND
??????????? ├─38813 /usr/sbin/httpd -DFOREGROUND
??????????? ├─38814 /usr/sbin/httpd -DFOREGROUND
??????????? ├─38815 /usr/sbin/httpd -DFOREGROUND
??????????? └─38816 /usr/sbin/httpd -DFOREGROUND

10月 25 13:45:59 web01.saltstack.com systemd[1]: Starting The Apache HTT...
10月 25 13:45:59 web01.saltstack.com systemd[1]: Started The Apache HTTP...
Hint: Some lines were ellipsized, use -l to show in full.

[root@web02 ~]# rpm -q httpd
httpd-2.4.6-80.el7.centos.1.x86_64

總結:

Saltstack 由 Master 和 Minion 構成,Master 和 Minion 之間通過消息隊列 (ZeroMQ) 進行通信。

Saltstack 的模塊有 pkg、file、cmd、user、service、cron 。

定義的屬性值如果是經常發生變化的,采用 pillar ;如果很固定、不易改變的,采用 grains 。

state 是 Saltstack 最核心模塊的功能,通過預先定制好的 sls 文件 (salt state file ),對被控主機進行管理,如程序包、文件、網絡配置、系統服務、系統用戶等。

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的自动化运维之 部署Saltstack 并批量部署 Nginx的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。