SaltStack配置管理

2022-06-24 10:42:11 字數 3509 閱讀 5969

配置管理使用yaml標記語言

yaml

yaml是「yaml不是一種記語言」的外語縮寫[1]  (見前方參考資料原文內容);但為了強調這種語言以資料做為中心,而不是以置標語言為重點,而用返璞詞重新命名。它是一種直觀的能夠被電腦識別的資料序列化格式,是乙個可讀性高並且容易被人類閱讀,容易和指令碼語言互動,用來表達資料序列的程式語言。

格式資料結構可以用類似大綱的縮排方式呈現,結構通過縮進來表示,連續的專案通過減號「-」來表示,map結構裡面的key/value對用冒號「:」來分隔。樣例如下:

house:

family:

name: doe

parents:

- john

- jane

children:

- paul

- mark

- simone

address:

number: 34

street: main street

city: nowheretown

zipcode: 12345

注意:字串不一定要用雙引號標識;

在縮排中空白字元的數目並不是非常重要,只要相同階層的元素左側對齊就可以了(不過不能使用tab字元);

允許在檔案中加入選擇性的空行,以增加可讀性;

在乙個檔案中,可同時包含多個檔案,並用「——」分隔;

選擇性的符號「...」可以用來表示檔案結尾(在利用串流的通訊中,這非常有用,可以在不關閉串流的情況下,傳送結束訊號)。

三個規則

縮排:預設兩個空格,不能使用tab鍵

冒號:冒號後面必須有乙個空格,類似於python的key和value

有兩種寫法

my_key: my_value

my_key:

my_value

短橫線:後面有乙個空格,表示列表,列出多個(比如需要安裝多個軟體包)

寫乙個配置

修改master配置檔案/etc/salt/master定義路徑(實際生產有測試,開發,生產等目錄)

新建這幾個資料夾

重啟master

systemctl restart salt-master
ps:file_roots下面base資料夾是必備的

進入資料夾cd /srv/salt/base/寫配置檔案,為了區分不同的軟體可以在此處新建乙個web資料夾

mkdir web

cd web/

寫乙個安裝apache的狀態(字尾必須是sls結尾)/srv/salt/base/web/apache.sls

apache-install和apache-service是key也可以叫id唯一識別符號,不能重複

pkg是乙個狀態模組使用裡面的方法installed安裝包

sevice是乙個狀態模組使用裡面的running執行方法

name是安裝的包名稱或者管理的服務的名稱

enable是設定開機自動啟動

ps:salt從上往下讀取執行,讀取到安裝包的命令不同的作業系統使用的命令不同,centos使用yum安裝,ubuntu使用apt-get安裝。(這裡是乙個虛擬的配置檔案salt會根據不同的系統執行的命令不同)

執行前先看

master定義的路徑是

配置檔案的路徑是

執行

salt 'linux-node2.example.com' state.sls web.apache

往linux-node2.example.com主機執行,state是模組,sls是執行方法預設執行是從base目錄下面執行,只需要寫執行的配置檔名,不需要加字尾sls

ps:加入需要執行master設定的其他目錄下面的模組比如需要執行prod目錄下面的配置檔案加引數,saltenv=prod就是從prod下面開始執行了

可以看到node2上面已經啟動了httpd

停止了httpd然後再次在master執行剛剛的命令

所以saltstack除了配置管理也可以狀態管理

以上安裝指定了需要安裝的模組安裝web下面的apache,不自動化,下面使用top file自動化

檢視配置檔案/etc/salt/master 預設可以在base環境下寫乙個top.sls檔案,可以在top.sls指定主機做什麼任務(不建議修改名稱)

編寫乙個top.sls

base:頂頭寫環境名稱

'saltstack-master':需要執行主機的id

web.apache:需要執行的命令模組

執行高階狀態

salt '*' state.highstate
執行的模組是state方法是highstate會從環境base讀取top.sls執行

ps:這裡執行的*是代表通知所有主機,假如top.sls刪除了id為saltstack-master的內容在執行則會報以下錯誤

沒有在top檔案裡面匹配到對應的資料

ps:使用高階狀態就可以把需要執行的都寫在top裡面然後只需要執行一條命令即可salt '*' state.highstate

如果需要驗證寫的配置檔案是否正確可以加引數test=true測試但是不實際執行,測試無誤再執行

salt '*' state.highstate test=true

saltstack配置管理

簡單配置 srv salt top.sls base ding ding.sls touch tmp foo cmd.run creates tmp foo結果 執行 當一切都準備好後,只需要 salt state.highstate 即可將sls應用到minion中。使用 salt state.h...

Saltstack配置管理

製作簡單初始化模組 在minion主機安裝軟體 1.定義master配置檔案file roots root localhost cat etc salt master file roots base etc salt states prod etc salt states prod 建立目錄 mkd...

Saltstack配置管理

製作簡單初始化模組 在minion主機安裝軟體 1.定義master配置檔案file roots root localhost cat etc salt master file roots base etc salt states prod etc salt states prod 建立目錄 mkd...