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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Nginx >内容正文

Nginx

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

發(fā)布時(shí)間:2024/2/28 Nginx 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动化运维之 部署Saltstack 并批量部署 Nginx 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Saltstack 原理

???????? Saltstack由Master和Minion構(gòu)成,master是服務(wù)端,表示一臺(tái)服務(wù)器;minion是客戶服務(wù)端,表示多臺(tái)服務(wù)器。在Master 上發(fā)送命令給符合條件的 Minion,Minion 就會(huì)執(zhí)行響應(yīng)的命令,Master和Minion之間通過(guò)ZeroMQ(消息隊(duì)列)進(jìn)行通信。
???????? Saltstack的master端監(jiān)聽(tīng)4505和4506端口,4505為master和 Minion 認(rèn)證通信端口,4506為 Master 用來(lái)發(fā)送命令或接收Minion的命令執(zhí)行返回信息。
????????? 當(dāng)客戶端啟動(dòng)后,會(huì)主動(dòng)連接 Master 端注冊(cè),然后一直保持該TCP連接,而 Master 通過(guò)這條TCP連接對(duì)客戶端進(jìn)行控制。如果連接斷開(kāi),Master 對(duì)客戶端將不能進(jìn)行控制。但是,當(dāng)客戶端檢查到連接斷開(kāi)后,會(huì)定期向 Master 端請(qǐng)求注冊(cè)連接。

Saltstack 常用模塊

? Saltstack 提供了非常多的功能模塊,以便于對(duì)操作系統(tǒng)的基礎(chǔ)功能和常用工具的操作。

(1)pkg 模塊

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

(2)file 模塊

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

(3)cmd 模塊

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

(4)user 模塊

user 模塊的作用是管理系統(tǒng)賬戶操作。

(5)service 模塊

service 模塊的作用是管理系統(tǒng)服務(wù)操作。

(6)cron 模塊

cron 模塊的作用是管理 cron 服務(wù)操作。

部署環(huán)境

三臺(tái)服務(wù)器參數(shù)如表所示。

?

角色 ?主機(jī)名??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

操作步驟

一 . 部署前的準(zhǔn)備工作。

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

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

關(guān)閉防火墻

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

2.在三臺(tái)服務(wù)器上都需要安裝 epel 源,因?yàn)楹竺嫘枰惭b Saltstack 服務(wù)端和客戶端。

[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????????????????????????????? //修改監(jiān)聽(tīng)地址(master)

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

修改第215行的主控端會(huì)自動(dòng)認(rèn)證被控端的認(rèn)證,只有被控端在設(shè)置完主控端的 IP 地址后啟動(dòng)服務(wù),主控端就會(huì)運(yùn)行被控端自動(dòng)認(rèn)證,以避免以后每次都需要運(yùn)行 salt-key 來(lái)確認(rèn)證書(shū)信任。

416?file_roots:????????????????????????????????????? //saltastack 文件根目錄位置,注意這個(gè)目錄默認(rèn)是沒(méi)有的,需要?jiǎng)?chuàng)建。
417?? base:
418?????- /srv/salt

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

552 pillar_opts:?True??????????????????????????? //開(kāi)啟 pillar 功能??????????

529?pillar_roots:?????????????????????????????????? //pillar 的主目錄,注意這個(gè)目錄默認(rèn)是沒(méi)有的,需喲創(chuàng)建。
530?? base:
531????- /srv/pillar

過(guò)濾查看修改的配置文件內(nèi)容

[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.主控端做完上述操作后啟動(dòng) salt-master 服務(wù),并查看端口

[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???

創(chuàng)建 salt 文件根目錄及 pillar 目錄

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

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

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

1.安裝 salt-minion 軟件包

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

2 . 配置兩臺(tái)被控端配置和文件 /etc/salt/minion

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

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

78?id: web01.saltstack.com????????????????????????? //指定被控主機(jī)名,另一臺(tái)是 web02.saltstack.com

3. 分別啟動(dòng)兩臺(tái)被控端服務(wù)

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

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

?

???????此時(shí)控制端和被控制端的配置以及完成,并啟動(dòng)服務(wù)。在主控端上做一個(gè)簡(jiǎn)單測(cè)試一下主控端和被控端的通信狀態(tài),如果返回都是True ,則說(shuō)明正常。注意這里的 ping 和我們平常的 ping 命令不同,它只是 test 類(lèi)下面的一個(gè)方法而已,用來(lái)驗(yàn)證主控端和被控端的通信狀態(tài)。注意 * 表示所有通過(guò)認(rèn)證的被控端,還可以支持其他很多正則表達(dá)式的匹配。

[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:

查看被控端主機(jī)掛載情況

[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

通過(guò)下面的命令可以查看被控機(jī) web01 主機(jī)上的 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 的重要組件之一,可以收集被控主機(jī)的基本信息,如 cpu 、內(nèi)核、操作系統(tǒng)、虛擬化等靜態(tài)數(shù)據(jù)。在服務(wù)端可以利用這些信息對(duì)不同被控主機(jī)進(jìn)行個(gè)性化配置。

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

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

base:???????????? //基本操作
?? '*':?????????????? //表示所有被控主機(jī)
??? - apache??? //所有主機(jī)執(zhí)行 apache

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

在創(chuàng)建一個(gè) apache.sls 文件

[root@master srv]# vim apache.sls

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

重啟服務(wù)

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

在主控端執(zhí)行刷新state 配置命令,讓兩臺(tái)被控端去執(zhí)行安裝 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

總結(jié):

Saltstack 由 Master 和 Minion 構(gòu)成,Master 和 Minion 之間通過(guò)消息隊(duì)列 (ZeroMQ) 進(jìn)行通信。

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

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

state 是 Saltstack 最核心模塊的功能,通過(guò)預(yù)先定制好的 sls 文件 (salt state file ),對(duì)被控主機(jī)進(jìn)行管理,如程序包、文件、網(wǎng)絡(luò)配置、系統(tǒng)服務(wù)、系統(tǒng)用戶等。

超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。