基於完成安裝的salt master和minion( ),接下來配置它強大的的管理功能。
需求:分發 從伺服器執行指令,例如:可以指定某客戶端或者所有客戶端執行安裝nginx。
master 與 minion 認證
1.minion 在第一次啟動時,會在/etc/salt/pki/minion/(該路徑在/etc/salt/minion 裡面 設定)下自動生成 minion.pem(private key)和 minion.pub(public key),然後將 minion.pub 傳送給 master。
2.master 在接收到minion的public key後,通過salt-key命令accept minion public key, 這樣在 master 的/etc/salt/pki/master/minions 下的將會存放以 minion id 命名的 public key, 然後 master 就能對 minion 傳送指令了。
key 管理:
salt 在 master 和 minion 資料交換過程中使用 aes 加密, 為了保證傳送給 minion 的指令不 會被篡改,master 和 minion 之間認證採用信任的接受(trusted, accepted )的 key. 在傳送命令到 minion 之前,minion 的 key 需要先被 master 所接受(accepted). 執行 salt-key 可以列出當前 key 的狀態
1. 修改 master 配置, vim /etc/salt/master 去掉前面 #號
2. 告訴master 的salt,配置管理檔案在**,根據你是如何安裝salt,有時需要自動建立 /srv/salt目錄,然後需要建立乙個top.sls 檔案,這個也是入口檔案,可以用於作為其他伺服器的基礎配置檔案。
3. 在/srv/salt/ 目錄下,建立 dev目錄,dev 目錄下建立 nginx(這些目錄和檔名,隨意定義,清晰的表示自己安裝什麼服務即可)
cd /srv/salt4. 在/srv/salt/dev/nginx 目錄下,指定配置檔案內容nginx.sls ( 縮排為2個空格,冒號後面1個空格)mkdir dev
cd dev
mkdir nginx
nginx:解釋說明:pkg:
- installed
service:
- running
- enable: ture
- watch:
- file: /etc/nginx/nginx.conf
- file: /etc/nginx/conf.d/default.conf
- require:
- pkg: nginx
/etc/nginx/nginx.conf:
file.managed:
- source: salt://nginx/nginx.conf
- mode: 664
- user: root
- group: root
/etc/nginx/conf.d/default.conf:
file.managed:
- source: salt://nginx/default.conf
- mode: 664
- user: root
- group: root
第一行:告訴管理工具,這是乙個id說明,如我這是管理nginx配置的,我就寫nginx5. 然後把master上nginx目錄下的 nginx.conf 和 default.conf 複製到salt 的nginx目錄下(/srv/salt/nginx)第二行:告訴管理工具,這個軟體需要被安裝,如果沒安裝就會執行yum安裝
第三行:需要安裝的軟體名稱
第四行:告訴管理工具,這是服務管理
第五行:告訴管理工具,這個服務需保證是執行狀態
第六行:告訴管理工具,這個服務設定開機啟動
第七-九行:觀察file檔案改動,有改動就重啟服務
第十二行:檔案標識
第十三行:檔案管理
第十四行:指定資料來源在**,即服務端的源,當這個檔案被改動時,就會觸發包管理工具,更改上面file指定的檔案,可以
看成是同步更新。
第十五行:指定file檔案的許可權
第十六行:指定檔案的所屬使用者
第十七行:指定檔案的所屬組
第十八行-第二十三行,請參考 十二——十七行
現在進行測試吧:
現在我們在服務端進行推送管理:
然後再客戶端驗證
到這裡就完成master 指定客戶端安裝nginx服務。如果有幾百台機器同時需要安裝,豈不是很方便。
自動化運維工具Saltstack學習筆記(二)
前面學習了saltstack安裝和基本的配置,可以通過saltstack批量執行系統命令,包括系統重啟,檢視系統負載,新增 刪除使用者等等。也可以把線上web,db,bbs等安裝和配置相同或相近的伺服器分為一組,通過saltstack的group功能批量執行管理。下面通過saltstack來實現批量...
運維自動化部署工具 SaltStack介紹
中文官網 salt 是 開發其的目的是為遠端執行提供最好的解決方案,並使遠端執行變得更好,更快,更 簡單 既要考慮大規模部署,又要考慮小規模系統,提供適應多種場合的應用讓人沮喪,但salt非常容易設定和維護,而不用考慮專案的大小。從數量可觀的本地網路系統,到跨資料中心的網際網路部署,salt設計為在...
自動化運維 Saltstack 教程
name version capacity centos 7 3.10.0 693.el7.x86 64 1 smp tue aug 22 21 09 27 utc 2017 x86 64 x86 64 x86 64 gnu linux saltstack 常見自動化運維工具 puppet www....