saltstack 自動化運維

一 saltstack 簡介:

saltstack 是基於python開發的一套C/S架構配置管理工具,底層使用zeroMQ消息隊列pub/sub方式通信,使用SSL證書籤發的方式進行認證管理
ZeroMQ 使得saltstack能快速在成千上萬臺機器上進行各種操作,而且採用RSAkey 方式確認身份,傳輸採用AES加密。
saltstack中服務端叫做master,客戶端叫做minion,
在master和minion端都是以守護進程的模式運行,一直監聽配置文件裏面的ret_port(接受minion請求)和publish_port(發佈消息)的端口。
當minion運行時會自動連接到配置文件裏面定義的master地址ret_port端口進行連接認證,默認客戶端請求id 是 socket.getfqdn()取到的值,也可以在minion啓動之前修改minion的id值。

二 服務的安裝及基本說明

1 server 1 上安裝客戶端和服務器端

軟件和相關文檔:
鏈接:https://pan.baidu.com/s/1wBVFXI8qYf-Z0YTDnjchYg
密碼:mofl

saltstack 自動化運維
saltstack 自動化運維

2 server 2 和 server3 端安裝客戶端

saltstack 自動化運維
saltstack 自動化運維

3 服務端安裝樹並查看其狀態

saltstack 自動化運維
saltstack 自動化運維

4 其密鑰的存放路徑

saltstack 自動化運維

5 將從節點指向主節點

saltstack 自動化運維
saltstack 自動化運維

6 指向前查看其密鑰爲空

saltstack 自動化運維

7 啓動slave服務

saltstack 自動化運維

8 查看從節點密鑰,當服務啓動後,會自動使用md5校驗生成密鑰

saltstack 自動化運維

9 服務器master端查看並啓動服務

saltstack 自動化運維

10 查看節點slave情況

saltstack 自動化運維

11 允許所有未註冊的節點註冊,並查看是否註冊成功

saltstack 自動化運維

12 查看master 端生成的公鑰

saltstack 自動化運維

13 查看slave 及 minion端由master發送的公鑰

saltstack 自動化運維

14 查看master端由minion端發送的公鑰

saltstack 自動化運維
saltstack 自動化運維
由此可知,其驗證是雙向驗證,及master端將其公鑰發送到minion端,minion也將公鑰發送到master端。

saltstack 自動化運維
其中4505 負責發送數據到客戶端,
4506 負責接收客戶端的數據到服務器

三 基礎應用

1 部署遠端httpd 服務

1 master環境準備

開啓工作目錄並重啓進程加載
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 瞭解YAML

1 默認的sls文件的renderer 是YAML renderer ,YAML是一個有很多強大特性的標記性語言,salt 使用了一個YAML的小型子集,映射非常常規的數據結構,向列表和字典,YAML renderer 的工作是將YAML數據格式的結構編譯成python數據結構給salt使用
規則一 :
縮進: YAML 使用一個固定的縮進風格表示數據層結構關係,salt需要每一個縮進級別都有兩個空格組成,不要使用tab
規則二:
冒號:python 的字典當然是簡單的鍵值對
規則三:
短橫槓:想要表示列表項,使用一個短橫槓加一個空格,多項使用同樣的縮進級別作爲同一列表的一部分。

3 部署:

saltstack 自動化運維
saltstack 自動化運維
其中apache-install只是一個名字
pkg.installed中pkg是數據包處理的類,是一個大的方式,installed 表示其是對數據包進行安裝處理
-pkgs 用於指定安裝多個數據包
saltstack 自動化運維
saltstack 自動化運維

4 查看安裝結果

saltstack 自動化運維

5 設置部署並啓動

saltstack 自動化運維
saltstack 自動化運維
其中service 也是一個大的類,而running是其中的方法
其有reload 、restart、enable 等常用方法

6 實施

saltstack 自動化運維

7 查看

saltstack 自動化運維

8 配置httpd配置文件並推送

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

9 配置

saltstack 自動化運維
saltstack 自動化運維
其中使用到了file.managed模塊
--name:表示目標目錄,及客戶端對應的目錄
--source:表示配置文件的來源路徑,其是相對於/srv/salt的路徑

10 部署

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

11 查看 :

saltstack 自動化運維

12 另一種配置方式:

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 nginx 源碼包編譯配置

1 配置並認證通過server3

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 創建相關文件夾,並查看,用於存放不同的文件和數據包

saltstack 自動化運維
saltstack 自動化運維

3 安裝配置相關依賴包

saltstack 自動化運維
saltstack 自動化運維

4 安裝配置nginx用戶名

saltstack 自動化運維
saltstack 自動化運維

5 配置nginx的推送和解壓

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

6 部署

saltstack 自動化運維
查看是否編譯成功
saltstack 自動化運維
saltstack 自動化運維

7 創建nginx配置文件

saltstack 自動化運維
saltstack 自動化運維

8 創建啓動和觸發機制

saltstack 自動化運維
saltstack 自動化運維

9 部署

saltstack 自動化運維
saltstack 自動化運維

10 查看

saltstack 自動化運維

3 安裝haproxy實現負載均衡:

1 另一個節點安裝以獲取到期配置文件

saltstack 自動化運維

2 複製配置文件主節點

saltstack 自動化運維

3創建haproxy 目錄

saltstack 自動化運維

4 修改配置文件

saltstack 自動化運維
saltstack 自動化運維

5 配置客戶端服務

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

6 配置認證key

saltstack 自動化運維
saltstack 自動化運維

7 查看總的目錄結構

saltstack 自動化運維

8 查看haproxy 目錄結構

saltstack 自動化運維

9 配置haproxy安裝配置文件

saltstack 自動化運維

10 設置其分配給不同的主機

saltstack 自動化運維

11 進行一鍵配置

saltstack 自動化運維

12 配置網頁查看其負載均衡

saltstack 自動化運維
saltstack 自動化運維

13 測試其負載均衡

saltstack 自動化運維

客戶端通過服務端數據發送到客戶端指定的目錄,並有客戶端進行安裝和配置,其配置文件目錄如下
saltstack 自動化運維

四 擴展模塊

1 grains

1 常用命令

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 設置標籤

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

3 其他用法

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 pillar 模板使用

1 配置pillar模塊目錄

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 創建目錄並創建文件

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

3 測試

saltstack 自動化運維

saltstack 自動化運維

3 mysql 應用於記錄數據

1 安裝數據庫並導入相應的數據

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 客戶端安裝服務:

saltstack 自動化運維

3 客戶端配置mysql相關數據

saltstack 自動化運維
saltstack 自動化運維

saltstack 自動化運維

4 mysql數據庫進行授權

saltstack 自動化運維

5 測試並查看結果

saltstack 自動化運維

4 master端用於將數據提交給mysql

此處的客戶端即需要將數據傳送到master 端也需要將數據發送給mysql。難度大,如果直接在master端配置mysql-python則只需mater將數據寫入數據庫即可

1 客戶端關閉mysql鏈接配置

saltstack 自動化運維
saltstack 自動化運維

2 重啓服務

saltstack 自動化運維

3 服務端安裝mysql-python

saltstack 自動化運維

4 服務端配置mysql相關配置

saltstack 自動化運維
saltstack 自動化運維

5 重啓服務

saltstack 自動化運維

6 mysql授權:

saltstack 自動化運維

7 測試:

saltstack 自動化運維

配置相關模塊

1 關閉mysql及配置,此處是實驗,以防mysql影響正常性能:
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

其他擴展模板的基本使用

saltstack 自動化運維
saltstack 自動化運維
可以通過此格式編寫其他的服務
saltstack 自動化運維
saltstack 自動化運維

5 jinja 模板的使用

1 方式一 :

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 方式二:通過模板進行修改

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

3 方式三 通過grains進行修改IP

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

通過定義配置文件進行修改其端口或IP地址
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

6 keepalived 安裝與基本配置:

1 yum 的方式安裝

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 通過編譯的方式進行keepalived的安裝

1 關閉和刪除前面配置的服務

saltstack 自動化運維
saltstack 自動化運維

2 準備數據包

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

3 基本服務配置,用於生成配置文件和啓動腳本

saltstack 自動化運維

4 拷貝配置文件和啓動腳本

saltstack 自動化運維
saltstack 自動化運維

5 編輯配置文件

saltstack 自動化運維
saltstack 自動化運維

6 添加下面的啓動腳本複製

saltstack 自動化運維
saltstack 自動化運維

7 創建運行腳本,並加上變量

saltstack 自動化運維
saltstack 自動化運維

8 添加變量

saltstack 自動化運維

9 配置top.sls

saltstack 自動化運維
saltstack 自動化運維

10 運行,必須在top.sls所在的目錄下

saltstack 自動化運維

11 查看結果:

saltstack 自動化運維

6 salt proxy 安裝與配置

1 服務器端刪除原有的minion配置及key 重新獲取key

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

2 master 端安裝服務,用於鏈接mastertop 和 master

saltstack 自動化運維

3 配置與server4 之間的鏈接

saltstack 自動化運維
saltstack 自動化運維

4 topmaster 端安裝配置

saltstack 自動化運維

5 配置配置文件

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

saltstack 自動化運維

6 啓動master端服務,使其認證key

saltstack 自動化運維

7 服務端獲取key 並通過認證

saltstack 自動化運維

8 測試

saltstack 自動化運維

7 salt ssh:

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

8 salt API:

1 安裝api軟件

saltstack 自動化運維

2 生成密鑰

saltstack 自動化運維
saltstack 自動化運維

3 修改服務端配置,使其支持API

saltstack 自動化運維
saltstack 自動化運維

4 創建用戶名和密碼,用於認證API,並創建相關用戶和密碼

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

5 重啓服務並查看相關端口

saltstack 自動化運維

6 測試minion端的連通性

saltstack 自動化運維

7 API 鏈接測試,並獲取token

saltstack 自動化運維

8 進行獲取客戶端列表

saltstack 自動化運維

9 配置saltapi.py 用於生成相關服務的腳本

saltstack 自動化運維
saltstack 自動化運維
saltstack 自動化運維

saltstack 自動化運維

10 在客戶端刪除相應的服務。並通過salt-API進行創建

saltstack 自動化運維

saltstack 自動化運維

11 查看,則安裝成功

saltstack 自動化運維

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章