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

溫馨提示×

溫馨提示×

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

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

自動運維工具 -saltstack安裝使用(實例演示!!!)

發布時間:2020-07-27 13:32:59 來源:網絡 閱讀:297 作者:caozhengtao1213 欄目:云計算

saltstack概述

在生產環境中,服務器往往不止一兩臺,一般都是成千上萬臺服務器。這對運維人員來說管理難度太大了,而saltstack是一個新的基礎平臺管理工具,可以支持管理上萬臺服務器規模,數秒鐘即可完成數據傳遞,是現在用的比較多的自動化運維工具之一。

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

saltstack介紹

1、基于python語言開發的

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

3、常用模板

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

4、saltstack數據系統

  • Grains(靜態數據)

  • pillar(動態數據)

saltstack三大功能

  • 遠程執行

  • 配置管理

  • 云管理

自動運維工具 -saltstack安裝使用(實例演示!!!)

saltstack工作原理

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

  • Master作為控制中心運行在主機服務器上,負責Salt命令運行和資源狀態的管理,Master上執行某條指令通過隊列下發到各個Minions去執行,并返回結果。

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

saltstack優缺點

  • 優點
速度快,基于消息隊列+線程,跑完多臺設備,都是毫秒級別的;非常靈活,源碼是python,方便理解和自定義模塊(因為python相對于其他的perl、ruby等還是很好理解的)
命令簡單,功能強大。
  • 缺點
部署minion端較為不便。

Saltstack重要組件

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

Saltstack常用命令

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

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

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

Saltstack操作實例-批量部署apache

  • 環境部署
準備三臺機器,這三臺機器都關閉selinux,清空防火墻規則。
服務器角色 IP地址 主機名稱
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
#分別為三臺機器添加epel源,本地有官方源
yum install -y epel-release  #安裝epel源

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

#修改如下內容
#15行 
interface: 192.168.175.132   #監聽地址

#215行 
auto_accept: True        #避免要運行salt-key來確認證書認證

#416行 
file_roots:
          base:
          - /srv/salt           #saltstack文件根目錄位置,目錄需要創建

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

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

#529行 
pillar_roots:
          base:
          - /srv/pillar         #pillar的主目錄,需要創建

cat /etc/salt/master | grep -v ^$ | grep -v ^#      #查看對主配置文件做的更改
  • 啟動服務器
#開啟服務
systemctl start salt-master

#設定服務開機自啟
systemctl enable salt-master

#查看服務端口監聽狀態
netstat -anpt | egrep '4505|4506'
  • 創建salt與pillar文件根目錄
mkdir /srv/salt
mkdir /srv/pillar
  • 被管理端(minion)安裝
#在兩臺服務器上分別安裝
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     #指定被控端主機名

啟動被控端服務
systemctl start salt-minion
  • 在主控端測試與被控端的通信狀態
#查看通信狀態
salt '*' test.ping

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

#查看在 master 上已經被接受過的客戶端
salt-key

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

#動態數據
salt 'web01.saltstack.com' pillar.items
  • 配置管理安裝Apache,下面進行的演示是遠程通過yum方式安裝Apache,步驟如下:
#修改主配置文件
vim /etc/salt/master 

file_roots:
  base:
    - /srv/salt/
#注意:環境:base、dev(開發環境)、test(測試環境)、prod(生產環境)。

#創建工作目錄
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表示開機啟動。

#重啟服務
systemctl restart salt-master

#執行刷新state配置命令
salt '*' state.highstate 
  • 在兩臺minino端驗證httpd服務是否安裝成功
#查看服務端口監聽狀態
netstst -ntap | grep 80

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

謝謝閱讀!

向AI問一下細節

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

AI

绥中县| 清远市| 贵阳市| 托克托县| 河源市| 柳州市| 芜湖市| 承德市| 平顺县| 南丹县| 齐齐哈尔市| 阳朔县| 营口市| 勐海县| 东宁县| 仲巴县| 兴安盟| 威海市| 宜君县| 临汾市| 兴隆县| 延庆县| 无锡市| 阿拉善左旗| 平南县| 涟源市| 吴川市| 项城市| 鱼台县| 从江县| 仁化县| 定陶县| 依兰县| 安康市| 江安县| 宝丰县| 定远县| 正蓝旗| 南雄市| 沧源| 吴川市|