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

    

1、背景介紹
web

    svnServer在內網環境,測試環境搭建在阿里雲公網上,分爲DBServer和WebServer。每次手動部署時都須要諸多步驟,開啓多個終端操做,可謂耗時又繁瑣,再加上新人經驗不足,部署過程時常出現問題。
sql


  • 手動部署測試環境的步驟:shell


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

  2. 將版本提交至svn;
    ssh

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

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

DBServersvn

(公網)工具

  1. 登陸DBServer,刪除原有的release內容;測試

  2. Drop database;

  3. 賦予Mysql_SetUp.sh執行權限;

  4. 執行Mysql_SetUp.sh,從新建庫,測試腳本的正確性;

WebServer

(公網)

  1. 中止應用服務;

  2. 備份各子系統應用;

  3. 刪除過時日誌;

  4. 部署各個子系統;

  5. 啓動各個子系統

    

2、解決方案    

    久而久之下去,終究是不可行的!

    若是用shell固化所需執行的步驟、執行的命令,對新手而言是否是簡易多了呢?

    若是隻在一臺server上就將全部的步驟執行完了,是否是更完美了呢?

    

    既然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、腳本編寫及調試

    有了以上的解決方案,就開始實踐,畢竟實踐出真知!

    3.1 ssh主機互信

    1. 在3臺server生成各自的建立 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. 分發整合的key認證文件,到各server上;

scp ~/.ssh/authorized_keys  DBServer :~/.ssh/

scp ~/.ssh/authorized_keys  WebServer :~/.ssh/

    4. 驗證互信

ssh DBServer

    OK,主機互信搞定,各臺server已經能夠「免籤」了。


    3.2 編寫腳本

    腳本分爲兩層,svnServer上的腳本遠程調用DBServer、WebServer 上的腳本,進行環境準備、安裝部署。

wKiom1nSItuA03ekAAAlbJs2y4g119.png


1pre_env.sh,遠程調用shell腳本,實現中止web應用服務;刪除舊文件;

wKiom1nSI8vzYw3hAAB_ADA8wPo616.png


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

wKioL1nSJPGALAYlAABeyJPoBdo004.png


3deploy_db.sh、4deploy_web.sh

wKiom1nSKCbSlqR3AABp8w2am6o285.png


4、總結

    經過編寫該腳本,規避了誤操做的風險,提升了部署的效率。同時也實現了學有所用!

相關文章
相關標籤/搜索