自动化环境部署工具的编写
開發(fā)這個(gè)工具的初衷是為了解決一個(gè)問題,問題描述如下:
人工部署環(huán)境時(shí),會(huì)由于不同的用戶無意更改conf中的配置,導(dǎo)致最終結(jié)果diff追查時(shí)候的問題。
為了解決這個(gè)問題,有了這個(gè)工具的雛形,具體完成功能如下:
1,創(chuàng)建本地模塊目錄,包括備份現(xiàn)有目錄,創(chuàng)建新目錄,由傳入conf文件中的配置參數(shù)決定。
2,去線上機(jī)器下載模塊到本地,需要下載的模塊目錄由參數(shù)確定。
3,修改 ‘模塊的conf文件’(一些配置參數(shù),因?yàn)榫€上和線下的區(qū)別會(huì)有差異),根據(jù)傳入的conf文件修改。
?
在寫代碼實(shí)現(xiàn)的過程中,跟預(yù)期中的架構(gòu)會(huì)有出入,所以做到最后就更改為自己的思路了。后來又跟同事溝通后,還是要按照原思路進(jìn)行;這個(gè)過程讓我認(rèn)識(shí)了一個(gè)工具架構(gòu)的重要性,在做的過程中,要考慮可擴(kuò)展,可升級(jí);只有架構(gòu)夠行,才能在以后升級(jí)過程中只改動(dòng)一小部分,而不影響現(xiàn)有功能。
?
具體架構(gòu)如下,首先是存儲(chǔ)結(jié)構(gòu):
工具目錄------->模塊目錄 ------>子模塊..? -----> new
?????????????????????????????????????????????????????????? ------>old
?????????????????????????????????????????????????????????? ------->old.bak
??????????? -------->conf目錄 ----->總配置文件
???????????????????????????????????? ------>模塊配置文件 .....
??????????? -------->總控腳本
??????????? -------->父類腳本(所有模塊的共性配置)
??????????? -------->子類腳本(繼承父類腳本,并加入自己需要實(shí)現(xiàn)的功能)
?
然后代碼架構(gòu):
總控腳本:傳入兩個(gè)參數(shù),一個(gè)是模塊名,令一個(gè)是模塊的配置文件地址
??????????????????? 接收參數(shù),創(chuàng)建相應(yīng)的子類對(duì)象
子類腳本:初始化過程中,將配置文件中的參數(shù)都解析出來存入對(duì)象變量中,并展??? 開操作
?
因?yàn)楣ぞ呤菫槎鄠€(gè)模塊服務(wù)的,所以新添加模塊的時(shí)候,只需要添加一個(gè)子類腳本,并且大部分common的功能都在父類中實(shí)現(xiàn)了,所以子類只需傳入?yún)?shù)調(diào)用即可。
所以說每新增一個(gè)模塊,只需要在總控腳本中加入一行if判斷語句,并添加一個(gè)子類腳本即可。不會(huì)影響現(xiàn)有模塊。
轉(zhuǎn)載于:https://blog.51cto.com/xuxueliang/982789
總結(jié)
以上是生活随笔為你收集整理的自动化环境部署工具的编写的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 和懒惰做朋友
- 下一篇: 45套精美的 ( Android, iP