由於近期時間頗緊,代碼實現及測試暫時無暇顧及了,此處僅作思考記錄:
依賴條件:
1、得知所有dhcp分配的IP(下文簡稱dip),以及要修改為的靜態IP(sip)
2、有一個指令碼,通過其設定檔,可修改原生主機名稱,ip等資訊(已完成)
3、兩組ip以數組的形式,寫入指令碼設定檔
4、未修改狀態下,dip online,sip必須offline.
5、未修改狀態下,如果sip online,記錄日誌並跳過
6、dip 和 sip的數量應該是相等的,但不強制
7、修改成功後,dip可能online,sip必須online
8、修改成功的,對應sip寫入/etc/hosts
9、修改成功後,刪除原dip在/etc/hosts記錄
10、修改成功後,刪除sip和dip在指令碼設定檔的對應資訊
11、考慮當dip多於sip時,可以直接將其正在使用的dip改為sip(此功能可獨立)
12、cluster必須是互信的
實現方法:
遍曆dip數組:
當dip online和sip offline滿足,則繼續,否則記錄日誌並跳出本次迴圈
copy 設定檔到tmp目錄,並做修改其為sip的配置
通過dip推送至目標節點
通過dip調用md5sum檢測設定檔一致性,一致則下一步,否則記錄日誌跳出本次迴圈
通過dip調用對應的指令碼,考慮重啟網路服務帶來的延遲,可休眠3秒
檢測本次修改的sip是否成功,dip在剛釋放可意味著其offline
檢測sip 和dip 狀態:
FUNC=刪除設定檔中對應的sip、dip和/etc/hosts中的dip,並將sip寫入/etc/hosts
sip online and dip offline: FUNC
sip offline and dip offline: FUNC ,選項組日誌
dip online and sip online: FUNC ,選項組日誌
第11條功能過於簡易,不再贅述.
本文出自 “自強不息” 部落格,請務必保留此出處http://mos1989.blog.51cto.com/4226977/1225688
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/zs/