自動化工具神器之saltstack

2021-12-29 19:52:41 字數 2157 閱讀 5284

第一台:linux-node1,既作為salt-master,又作為salt-minion

第二台:linux-node2,只作為salt-minion

local本地執行master/minion salt ssh遠端執行配置管理(狀態管理)雲管理:阿里雲,aws,openstack都提供了封裝好的介面,可以使用salt-cloud進行雲主機的管理

此處使用yum安裝,生產也建議使用yum安裝,minion在裝作業系統的時候就裝上,也可以使用salt ssh安裝minion,後續會提到

linux-node1

linux-node2

啟動salt

修改兩個salt-minion的配置檔案,指出salt-master的主機,這裡可以使用ip位址,如果有內部dns也可以使用主機名,使用主機名方便以後salt-master的遷移

注意:下面配置檔案中的id十分重要,在生產上可以用來配置主機名,後面會有主機面的配置策略,如果不進行配置此id,將預設使用fqdn

啟動salt-master和salt-minion

minion首次啟動後會在minion端看到minion的私鑰和公鑰,salt會把公鑰傳送給master

master啟動後也會生成key,此時master需要統一minion的請求

使用salt-key檢視各種狀態的key

接受兩個新的key,這裡使用-a接受所有,也可使用-a指定某個minion,也可使用萬用字元匹配。具體salt-key的指令引數,請看salt-key –help檢視

這時就可以在master端的已接受minionm看到minion端id檔案了

實際上master的minions列表檔案中存放的就是minion的公鑰

master也會把自己的公鑰傳送到minion端

使用test.ping測試master和minion是否連通

salt:基本命令; *:代表所有minion主機;test:模組; ping:test模組的乙個方法,這裡的單引號也可以使用雙引號

使用cmd.run遠端執行命令,cmd是模組,run是cmd模組的乙個方法

修改salt-master的配置檔案,開啟416至418行的注釋

file_root代表檔案目錄所在,base指base環境,是必須存在的,這裡支援多種(測試開發生產等)環境,後續會提到

編寫apache.sls

執行上面的狀態檔案,salt:命令 *:代表所有minion,具體匹配方法後面會有詳解 state:模組 sls:方法 apache:要執行的state檔案

檢視apahce服務狀態

top.sls是預設的入口檔案,名稱也是top.sls,必須放在base環境下

執行高階狀態,意思是從top.sls開始讀入,進行匹配執行狀態檔案

grains:蒐集minion啟動時的系統資訊,只有在minion啟動時才會蒐集,grains更適合做一些靜態的屬性值的採集,例如裝置的角色(role),磁碟個數(disk_num)等諸如此類非常固定的屬性,另乙個作用可以用來匹配minion

列出所有的grains選項

顯示單個grains內容,get方法直接顯示值,item方法會把條目名也顯示出來

模擬使用grains匹配minion,-g代表指定grains匹配

修改minion配置檔案,簡單手動設定乙個grains

重啟grains,測試手動新增結果

新增grains,缺省會到/etc/salt/grains中讀取,手動新增到/etc/salt/grains即可

後續會有詳細應用說明,此處不多贅述

檢視master自帶的pillar條目,實際生產是不開啟的,自帶的pillar沒什麼卵用,所以一般都會設定成false,使用自己定義的pillar

salt -i 指定pillar匹配

grains儲存的是靜態、不常變化的內容;pillar則相反,儲存的是動態資料grains是儲存在minion本地,可以使用saltutil.sync_grains重新整理;而pillar儲存在master本地,可以使用saltutil.refresh_pillar來重新整理minion有許可權操作自己的grains值,如增加、刪除,可以用來做資產管理等;pillar儲存在master中指定資料,只有指定的minion才可以看到,可以用來儲存敏感資料,minion無權修改

關於自動化工具

靈活的思維 obt的上線,由最初的人工替換配置檔案,到最後設計配置修改工具 使用show指定要修改的配置項 path指定這些配置項所在的檔案路徑,temp指定檔案,最後通過修改檔案流覆蓋tomcat下相應的檔案 將整個應用的配置改動都放到資料庫中,通過資料庫指令碼來執行應用配置的改動。將繁雜的上線流...

DevOps 自動化工具

devops實踐中,自動化工具的使用是非常重要的,通常涉及到下面幾個方面 讓我們看看這些方面中的一些工具,看它們是如何解決痛點的。雲服務 如aliyun,aws等 使用雲服務,不需要買硬體伺服器 租用機櫃。雲服務很容易按需擴充套件,沒有預先的硬體成本,可以根據流量自動適配。git 儲存 管理 的版本...

selenium 自動化工具

今天在使用selenium phantomjs動態抓取網頁時,出現如下報錯資訊 userwarning selenium support for phantomjs has been deprecated,please use headless versions of chrome or firef...