溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

通過ssh主機互信打通內、外網,使用shell腳本自動部署測試環(huán)境

發(fā)布時間:2020-09-16 19:24:00 來源:網絡 閱讀:1207 作者:ilanqing 欄目:軟件技術

    

一、背景介紹

    svnServer在內網環(huán)境,測試環(huán)境搭建在阿里云公網上,分為DBServer和WebServer。每次手動部署時都需要諸多步驟,開啟多個終端操作,可謂耗時又繁瑣,再加上新人經驗不足,部署過程時常出現(xiàn)問題。


  • 手動部署測試環(huán)境的步驟:


服務器操作步驟
svnServer(內網)
  1. 使用maven命令打包;

  2. 將版本提交至svn;

本地PC
  1. 將提測版本使用WinSCP工具get到本地;

  2. 通過WinSCP工具將提測版本,分別上傳到DBServer和WebServer

DBServer

(公網)

  1. 登錄DBServer,刪除原有的release內容;

  2. Drop database;

  3. 賦予Mysql_SetUp.sh執(zhí)行權限;

  4. 執(zhí)行Mysql_SetUp.sh,重新建庫,測試腳本的正確性;

WebServer

(公網)

  1. 停止應用服務;

  2. 備份各子系統(tǒng)應用;

  3. 刪除過期日志;

  4. 部署各個子系統(tǒng);

  5. 啟動各個子系統(tǒng)

    

二、解決方案    

    長此以往下去,終究是不可行的!

    如果用shell固化所需執(zhí)行的步驟、執(zhí)行的命令,對新手而言是不是簡易多了呢?

    如果只在一臺server上就將所有的步驟執(zhí)行完了,是不是更完美了呢?

    

    既然svnServer作為部署工作的入口,那就把它作為console。

    定下console之后,問題又來了,它如何與公網的server“溝通”呢?ssh主機互信來幫忙!通過主機互信,打通內外網,跨起一座溝通的橋梁。

    按照部署步驟,可歸納為4個階段:

  1. 升級前的準備工作:停止web應用服務;刪除舊文件;

  2. 分別提測內容的上傳;

  3. 部署DBServer;

  4. 部署WebServer;

    

  • 使用shell腳本部署的步驟:

服務器操作步驟
svnServer(內網)
  • 1pre_env.sh

  • 2copy_build.sh

  • 3deploy_db.sh

  • 4deploy_web.sh

    通過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)境準備、安裝部署。

通過ssh主機互信打通內、外網,使用shell腳本自動部署測試環(huán)境


1pre_env.sh,遠程調用shell腳本,實現(xiàn)停止web應用服務;刪除舊文件;

通過ssh主機互信打通內、外網,使用shell腳本自動部署測試環(huán)境


2copy_build.sh,通過scp命令,將應用直接從svnServer上傳到web和DBserver上;

通過ssh主機互信打通內、外網,使用shell腳本自動部署測試環(huán)境


3deploy_db.sh、4deploy_web.sh

通過ssh主機互信打通內、外網,使用shell腳本自動部署測試環(huán)境


四、總結

    通過編寫該腳本,規(guī)避了誤操作的風險,提高了部署的效率。同時也實現(xiàn)了學有所用!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI