自動(dòng)運(yùn)維工具-saltstack安裝使用(實(shí)例演示!!!)

saltstack概述

在生產(chǎn)環(huán)境中,服務(wù)器往往不止一兩臺(tái),一般都是成千上萬臺(tái)服務(wù)器。這對(duì)運(yùn)維人員來說管理難度太大了,而saltstack是一個(gè)新的基礎(chǔ)平臺(tái)管理工具,可以支持管理上萬臺(tái)服務(wù)器規(guī)模,數(shù)秒鐘即可完成數(shù)據(jù)傳遞,是現(xiàn)在用的比較多的自動(dòng)化運(yùn)維工具之一。

Salt是一個(gè)基礎(chǔ)平臺(tái)管理工具。SaltStack采用 C/S模式,server端就是salt的master,client端就是minion,minion與master之間通過ZeroMQ消息隊(duì)列通信。master監(jiān)聽4505和4506端口,4505為master和minion認(rèn)證通信端口,4506為master用來發(fā)送命令或者接收minion的命令執(zhí)行返回信息。

saltstack介紹

1、基于python語言開發(fā)的

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的靈山網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

2、輕量級(jí)管理工具,批量執(zhí)行命令

3、常用模板

名稱含義
pkg 包,有增刪更新
file 用于管理文件,包括同步文件、設(shè)置文件權(quán)限和所屬用戶組、刪除文件等操作
cmd 在minion上執(zhí)行命令或者腳本
use 管理系統(tǒng)賬戶操作
service 管理系統(tǒng)服務(wù)操作
cron 管理crontab任務(wù)

4、saltstack數(shù)據(jù)系統(tǒng)

  • Grains(靜態(tài)數(shù)據(jù))

  • pillar(動(dòng)態(tài)數(shù)據(jù))

saltstack三大功能

  • 遠(yuǎn)程執(zhí)行

  • 配置管理

  • 云管理

自動(dòng)運(yùn)維工具 -saltstack安裝使用(實(shí)例演示!!!)

saltstack工作原理

SaltStack客戶端(Minion)在啟動(dòng)時(shí),會(huì)自動(dòng)生成一套密鑰,包含私鑰和公鑰。之后將公鑰發(fā)送給服務(wù)器端,服務(wù)器端驗(yàn)證并接受公鑰,以此來建立可靠且加密的通信連接。同時(shí)通過消息隊(duì)列ZeroMQ在客戶端與服務(wù)端之間建立消息發(fā)布連接。
  • Minion是SaltStack需要管理的客戶端安裝組件,會(huì)主動(dòng)去連接 Master端,并從Master端得到資源狀態(tài)信息,同步資源管理信息。

  • Master作為控制中心運(yùn)行在主機(jī)服務(wù)器上,負(fù)責(zé)Salt命令運(yùn)行和資源狀態(tài)的管理,Master上執(zhí)行某條指令通過隊(duì)列下發(fā)到各個(gè)Minions去執(zhí)行,并返回結(jié)果。

  • ZeroMQ是一款開源的消息隊(duì)列軟件,用于在Minion端與Master端建立系統(tǒng)通信橋梁。

saltstack優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn)
速度快,基于消息隊(duì)列+線程,跑完多臺(tái)設(shè)備,都是毫秒級(jí)別的;非常靈活,源碼是python,方便理解和自定義模塊(因?yàn)閜ython相對(duì)于其他的perl、ruby等還是很好理解的)
命令簡(jiǎn)單,功能強(qiáng)大。
  • 缺點(diǎn)
部署minion端較為不便。

Saltstack重要組件

  • grains
grains是在minion(客戶端)啟動(dòng)時(shí)收集到的一些信息,比如操作系統(tǒng)類型、網(wǎng)卡ip等靜態(tài)信息。
grains 的信息并不是動(dòng)態(tài)的,并不會(huì)時(shí)時(shí)變更,它只是在 minion 啟動(dòng)時(shí)收集到的。
  • pillar
pillar和grains不一樣,是在master上定義的,并且是針對(duì)minion定義的一些信息。像一些比較重要的數(shù)據(jù)(密碼)可以存在pillar里,還可以定義變量等。
  • state
state是saltstack的最核心的功能,通過預(yù)先指定好的sls文件對(duì) 被控主機(jī)進(jìn)行管理(包括:包、網(wǎng)絡(luò)配置、系統(tǒng)服務(wù)、系統(tǒng)用戶等)

Saltstack常用命令

  • 拷貝文件到客戶端
salt 'client2' cp.get_file salt:#apache.sls /tmp/cp.txt
  • 拷貝目錄到客戶端
salt 'client2' cp.get_dir salt:#test /tmp
  • 顯示存活的客戶端
salt-run manage.up
  • 命令下執(zhí)行服務(wù)端的腳本
#編輯腳本
vim /srv/salt/test/shell.sh

#! /bin/sh
echo "salt server do run shell script on client" > /tmp/shell.txt

#執(zhí)行腳本
salt 'client2' cmd.script salt:#test/shell.sh

Saltstack操作實(shí)例-批量部署apache

  • 環(huán)境部署
準(zhǔn)備三臺(tái)機(jī)器,這三臺(tái)機(jī)器都關(guān)閉selinux,清空防火墻規(guī)則。
服務(wù)器角色IP地址主機(jī)名稱
master 192.168.142.123 master.saltstack.com
minion01 192.168.142.124 web01.saltstack.com
minion02 192.168.142.166 web02.saltstack.com
  • 安裝 saltstack
#分別為三臺(tái)機(jī)器添加epel源,本地有官方源
yum install -y epel-release  #安裝epel源

#服務(wù)器安裝
yum -y install salt-master
  • 配置 master主機(jī)
#安裝完成修改主配置文件
vim /etc/salt/master

#修改如下內(nèi)容
#15行 
interface: 192.168.175.132   #監(jiān)聽地址

#215行 
auto_accept: True        #避免要運(yùn)行salt-key來確認(rèn)證書認(rèn)證

#416行 
file_roots:
          base:
          - /srv/salt           #saltstack文件根目錄位置,目錄需要?jiǎng)?chuàng)建

#710行組分類
nodegroups:
  group1: 'web01.saltstack.com'
  group2: 'web02.saltstack.com'

#552行 pillar_opts: True        #開啟pillar功能,同步文件功能

#529行 
pillar_roots:
          base:
          - /srv/pillar         #pillar的主目錄,需要?jiǎng)?chuàng)建

cat /etc/salt/master | grep -v ^$ | grep -v ^#      #查看對(duì)主配置文件做的更改
  • 啟動(dòng)服務(wù)器
#開啟服務(wù)
systemctl start salt-master

#設(shè)定服務(wù)開機(jī)自啟
systemctl enable salt-master

#查看服務(wù)端口監(jiān)聽狀態(tài)
netstat -anpt | egrep '4505|4506'
  • 創(chuàng)建salt與pillar文件根目錄
mkdir /srv/salt
mkdir /srv/pillar
  • 被管理端(minion)安裝
#在兩臺(tái)服務(wù)器上分別安裝
yum -y install salt-minion
  • 配置minino端
#修改/etc/salt/minino主配置文件
vim /etc/salt/minion

#修改配置如下
#16行 
master: 192.168.175.132     #指定主控端IP

#78行 
id: web01.saltstack.com     #指定被控端主機(jī)名

啟動(dòng)被控端服務(wù)
systemctl start salt-minion
  • 在主控端測(cè)試與被控端的通信狀態(tài)
#查看通信狀態(tài)
salt '*' test.ping

#查看所有被管理端的掛載狀態(tài)
salt '*' cmd.run 'df -h'

#查看在 master 上已經(jīng)被接受過的客戶端
salt-key

#查看被控主機(jī)上grains所有值(每次minion在啟動(dòng)是都會(huì)獲取客戶端信息)
#靜態(tài)數(shù)據(jù)
salt 'web01.saltstack.com' grains.items

#動(dòng)態(tài)數(shù)據(jù)
salt 'web01.saltstack.com' pillar.items
  • 配置管理安裝Apache,下面進(jìn)行的演示是遠(yuǎn)程通過yum方式安裝Apache,步驟如下:
#修改主配置文件
vim /etc/salt/master 

file_roots:
  base:
    - /srv/salt/
#注意:環(huán)境:base、dev(開發(fā)環(huán)境)、test(測(cè)試環(huán)境)、prod(生產(chǎn)環(huán)境)。

#創(chuàng)建工作目錄
mkdir /srv/salt

vim /srv/salt/top.sls

base:
  '*':
    - apache
#注意:'*',則表示在所有的客戶端執(zhí)行apache模塊。

vim /srv/salt/apache.sls

apache-service:
  pkg.installed:
    - names:                # 如果只有一個(gè)服務(wù),那么就可以寫成–name: httpd不用再換一行
      - httpd
      - httpd-devel
  service.running:
    - name: httpd
    - enable: True
#注意:apache-service是自定義的id名。pkg.installed為包安裝函數(shù),下面是要安裝的包的名字。service.running也是一個(gè)函數(shù),來保證指定的服務(wù)啟動(dòng),enable表示開機(jī)啟動(dòng)。

#重啟服務(wù)
systemctl restart salt-master

#執(zhí)行刷新state配置命令
salt '*' state.highstate 
  • 在兩臺(tái)minino端驗(yàn)證httpd服務(wù)是否安裝成功
#查看服務(wù)端口監(jiān)聽狀態(tài)
netstst -ntap | grep 80

#查看生成的配置文件
rpm -qc httpd

謝謝閱讀!

文章標(biāo)題:自動(dòng)運(yùn)維工具-saltstack安裝使用(實(shí)例演示!!!)
本文地址:http://muchs.cn/article16/ghesdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)靜態(tài)網(wǎng)站、域名注冊(cè)、標(biāo)簽優(yōu)化App開發(fā)

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)