您好,登錄后才能下訂單哦!
一、背景介紹
svnServer在內網環(huán)境,測試環(huán)境搭建在阿里云公網上,分為DBServer和WebServer。每次手動部署時都需要諸多步驟,開啟多個終端操作,可謂耗時又繁瑣,再加上新人經驗不足,部署過程時常出現(xiàn)問題。
手動部署測試環(huán)境的步驟:
服務器 | 操作步驟 |
svnServer(內網) |
|
本地PC |
|
DBServer (公網) |
|
WebServer (公網) |
|
二、解決方案
長此以往下去,終究是不可行的!
如果用shell固化所需執(zhí)行的步驟、執(zhí)行的命令,對新手而言是不是簡易多了呢?
如果只在一臺server上就將所有的步驟執(zhí)行完了,是不是更完美了呢?
既然svnServer作為部署工作的入口,那就把它作為console。
定下console之后,問題又來了,它如何與公網的server“溝通”呢?ssh主機互信來幫忙!通過主機互信,打通內外網,跨起一座溝通的橋梁。
按照部署步驟,可歸納為4個階段:
升級前的準備工作:停止web應用服務;刪除舊文件;
分別提測內容的上傳;
部署DBServer;
部署WebServer;
使用shell腳本部署的步驟:
服務器 | 操作步驟 |
svnServer(內網) |
|
通過shell腳本來部署,感覺要操作的內容減少了,這個過程簡單了、順暢了!
三、腳本編寫及調試
有了以上的解決方案,就開始實踐,畢竟實踐出真知!
3.1 ssh主機互信
1. 在3臺server生成各自的創(chuàng)建 RSA密鑰和公鑰;
ssh-keygen -t rsa |
2. 整合公鑰文件,將所有的key文件匯總到內網server的認證文件中;
ssh svnServer cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh DBServer cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh WebServer cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
3. 分發(fā)整合的key認證文件,到各server上;
scp ~/.ssh/authorized_keys DBServer :~/.ssh/ scp ~/.ssh/authorized_keys WebServer :~/.ssh/ |
4. 驗證互信
ssh DBServer |
OK,主機互信搞定,各臺server已經可以“免簽”了。
3.2 編寫腳本
腳本分為兩層,svnServer上的腳本遠程調用DBServer、WebServer 上的腳本,進行環(huán)境準備、安裝部署。
1pre_env.sh,遠程調用shell腳本,實現(xiàn)停止web應用服務;刪除舊文件;
2copy_build.sh,通過scp命令,將應用直接從svnServer上傳到web和DBserver上;
3deploy_db.sh、4deploy_web.sh
四、總結
通過編寫該腳本,規(guī)避了誤操作的風險,提高了部署的效率。同時也實現(xiàn)了學有所用!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。