自動化部署之SaltStack
阿新 • • 發佈:2018-08-06
pre init 6 tap 消息隊列 devel -418 註釋 安裝 grep -v SaltStack原理
SaltStack由Master和Minion構成,Master 是服務端, 表示一臺服務器;Minion是客戶服務端,表示多臺服務器。在Master上發送命令給符合條件的Minion,Minin就會執行相應的命令,Master和Minion之間是通過ZeroMQ (消息隊列)進行通信的。
SaltStack的Master端監聽4505與4506端口,4505為Master和Minion認證通信端口,4506為Master用來發送命令或者接收Minion的命令執行返回信息。
當客戶端啟動後,會主動連接Master端註冊,然後一直保持該TCP連接,而Master通過這條TCP連接對客戶端進行控制。如果連接斷開,Master對客戶端將不能進行控制。但是,當客戶端檢查到連接斷開後,會定期向Master端請求註冊連接。
SaltStack常用模塊
名稱 | 說明 |
---|---|
pkg模塊 | 包管理,包括增刪更新。 |
file模塊 | 管理文件操作,包括同步文件、設置文件權限和所屬用戶組、刪除文件等操作。 |
cmd模塊 | 在Minion上執行命令或者腳本。 |
user模塊 | 管理系統賬號操作。 |
service模塊 | 管理系統服務操作。 |
cron模塊 | 管理cron服務操作。 |
SaltStack批量部署並配置Apache
角色 | 主機名 | IP地址 | 需要安裝的軟件 |
---|---|---|---|
master | master | 192.168.10.7 | release、salt-master |
minion | web1 | 192.168.10.8 | release、salt-minion |
minion | web2 | 192.168.10.9 | release、salt-minion |
SaltStack安裝
- 修改所有主句名稱和hosts文件
主機名分別修改為master > web1 > web2
vim /etc/hostname
master //修改主機名
vim /etc/hosts
192.168.10.6 master
192.168.10.7 web1
192.168.10.8 web2
init 6 #重啟
- 在三臺主機上安轉epel源
yum install epel-release -y
- master 安裝salt-master
yum install salt-master -y
- 編輯master主機上的salt配置文件
vim /etc/salt/master
interface: 192.168.10.6 //15行,改為為本機地址
auto_accept: True //215行,自動認證被控端的認證
file_roots: //416-418行,去掉註釋開啟
base:
- /srv/salt //這個目錄默認是沒有的,需要創建。
pillar_roots: //529-531行, 去掉註釋開啟
base:
- /srv/pillar //這個目錄默認是沒有的,需要創建。
pillar_opts: True //552行,開啟pillar功能
nodegroups: //710行,組的分類
group1: ‘web1‘
group2: ‘web2‘
4) 查看修改的內容
cat /etc/salt/master | grep -v ^$ | grep -v ^# 過濾出空行和#開頭的信息
5) 創建salt目標和pillar
mkdir /srv/salt
mkdir /srv/pillar
6) 關閉防火墻和安全功能,開啟salt-master服務並查看4505端口和4506端口是否開啟
systemctl stop firewalld.service
setenforce 0 //關閉防火墻和安全功能
systemctl start salt-master.service 開啟服務
netstat -ntap | egrep ‘4505|4506‘ #egrep 支持擴正則表達式
7) 兩臺被控端web1,web2上安裝salt-minion
yum install salt-minion -y
8) 編輯salt-minion的配置文件
vim /etc/salt/minion
master: 192.168.10.6 //16行,指定控制端IP
id: web1 //78行,指定本機主機名,web2則為web2
SaltStack批量部署Apache
master上創建top.sls文件並寫
vim /srv/salt/top.sls
base:
‘*‘: //表示在所有的客戶端執行apache模塊
- apache #定義變量後面創建的內容是調用裏面的內容
vim /srv/salt/apache.sls #創建被調用變量
apache-service:
pkg.installed:
- names:
- httpd
- httpd-devel
service.running:
- name: httpd
- enable: True
重啟salt-master服務
systemctl restart salt-master
自動化部署之SaltStack