天天看點

運維自動化--自動化安裝

不管什麼運維标準化,自動化,那開始都是最簡單的系統安裝。若開始系統安裝都沒有實作,更加不要談後面的一切,之前說過使用一套開源的工具來搭建自動化運維平台,那麼系統安裝也一樣使用開源的一套工作來做。cobbler+ipmi來實作整個裝機過程,目前在使用的好像有pptv(推出了一個較經典的分布式裝機系統),小米的裝機平台等等。今天就簡單介紹一下如何使用cobbler+ipmi來完成裝機整個過程

運維自動化--自動化安裝

1.整個部署系統架構(參考了pptv的分布式模式)

一般稍大點的公司都會租用多個機房(包括自己的小機房),好點就會通過裸光纖各個機房之間打通,但是如果有兩位數以上的伺服器同時安裝,那帶寬會如何呢?考慮這個建議在各機房部署一套cobbler伺服器,以便各機房使用各自的p_w_picpath檔案,形成了(master+slave+slave...)就取ppt的一個架構圖

運維自動化--自動化安裝

所有的有關 distro、profile、images、kickstart檔案等都在master上操作,通過rsync進行同步到各個節點上。并通過主平台根據idc資訊來調各自的api來實作system的管理。

2. 實作工具

前台:bootstrap+django

工具:cobbler+ipmi+dell dtk(megacli)

3. 實作流程

 i. 伺服器上架,初始化配置。配置ipmi,修改bios(因uefi啟動模式支援不是很好,待後期優化)。

  ii. 平台添加資訊。idc資訊,主機名,mac,ipmi等資訊通過表單送出給待裝機平台(一些硬體資訊後期考慮二維碼的模式實作,現在不流行掃一掃);

  iii. 根據資訊開始安裝。通過api将資訊添加到cobbler的system,使用ipmi來管理伺服器的電源資訊。

  iv. 實體機通過dell的dtk或megacli,先啟動一個精簡的鏡像系統,進行raid的配置。

  v. 開始正式部署作業系統。通過post方式,從裝機的用戶端上不斷上傳狀态資訊到伺服器端,伺服器接收資訊後根據不同情況做不同的處理,并将進度呈現在前台。比如安裝完成後上傳完成狀态資訊,第一步做的是将pxe啟動模式禁用改為硬碟啟動,将cobbler中的system的netboot改為false(為什麼不删除,主要是為後期的初始化固定ip位址,為了dhcp上做mac和ip綁定)

  vi. 整個裝機到此基本已經完成,根據情況接下來做一下初始化的設定。

運維自動化--自動化安裝

4. 自動化裝機中一些關鍵問題及建議處理方式

  i. 在開始安裝系統前,在執行開始安裝的按鈕時,背景同時将伺服器的啟動模式設定成pxe啟動;

  ii. raid自動化劃分。對于實體伺服器需要設定raid的,預設cobbler的profile設定為精簡的作業系統,然後進行raid劃分,完成raid劃分後,post狀态,根據狀态再修改system的profile,重新開機伺服器開始安裝系統,實作自動raid劃分。

  iii. 安裝異常确認。對于安裝的用戶端如何監控具體的異常狀态,有幾種方式:最簡單的就是檢視日志,那就需要将安裝日志在我們的控制台上來打開并檢視;使用帶外管理的remote console(kvm);使用ipmi的sol來檢視異常問題。

  iv. 如何安全控制生産系統被勿裝。有幾種方法可以做到:a.硬體設定上避免。 禁用啟動模式中的網卡裝置;b. 系統平台避免。不斷的确認,并在裝機前提前将伺服器的電源關閉,等待一定時間才能點選安裝,初始化完盡快的删除cobbler中的system或将system的netboot設定為false;c. 網絡隔離。将普通網絡vlan跟裝機vlan分離,通過開始安裝前劃vlan後裝機後劃vlan來實作網絡的分離。

目前遇到的幾個關鍵問題。。。待大家一起再補充

5. screenshot

 裝機表單

運維自動化--自動化安裝

待安裝清單

運維自動化--自動化安裝

安裝日志

運維自動化--自動化安裝

安裝記錄

運維自動化--自動化安裝

有興趣的可以加99798703一起探讨

github:https://github.com/elivis/opsa-master

關注opsa公衆号

運維自動化--自動化安裝

歡迎大家來郵件讨論:[email protected]