欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么使用travis-ci持續(xù)部署node.js應用-創(chuàng)新互聯(lián)

這篇文章主要介紹了怎么使用travis-ci持續(xù)部署node.js應用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

光明網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)公司

基本原理

從自動測試到自動部署的核心問題是測試機與生產(chǎn)服務器的信任問題,即如何安全地把程序包傳輸?shù)缴a(chǎn)服務器。市面上的部署工具如scp、ansible、chef,都繞不開這個核心問題。

以scp為例,測試機登錄生產(chǎn)服務器的方式有兩種:密碼和秘鑰。密碼登錄方式需要交互式地輸入密碼,總不能每次測試的時候,人為地輸入密碼吧,所以密碼方式行不通。

秘鑰的方式可以實現(xiàn)自動登錄,但首次將測試機的公鑰傳輸給生產(chǎn)服務器仍然需要密碼。似乎走入了死胡同,但辦法總是有的。我們知道開發(fā)機是可以登錄到生產(chǎn)服務器的,那么我們就可以將開發(fā)機的公鑰復制到生產(chǎn)服務器,將開發(fā)機的私鑰復制到測試機,測試機通過私鑰來偽裝成開發(fā)機,自動地登錄到生產(chǎn)服務器。

解決了自動登錄的問題,另一個問題是怎么將開發(fā)機的私鑰復制到測試機上。由于測試機每次都是新開的一個虛擬機,這個新開的虛擬機IP不固定,所以沒辦法直接登錄上去。解決辦法是將私鑰文件作為代碼庫的一部分提交,這樣測試機每次從代碼庫上拉取代碼的同時也獲取到了秘鑰文件,通過這種方式就實現(xiàn)了私鑰從開發(fā)機復制到測試機。

將私鑰文件提交到代碼庫有一個很嚴重的安全性問題,即任何人只要得到了這個私鑰文件,他就可以隨心所欲的操縱生產(chǎn)服務器。幸好,travis-ci提供了加密方案,它能夠?qū)⑺借€文件加密,加密后的文件只在當前代碼庫有效。

總的來說,通過復制私鑰完成自動登錄以及對私鑰加密來保障安全性,我們就可以建立起測試機與生產(chǎn)服務器的信任通道,測試機就可以安全地操作生產(chǎn)服務器完成自動部署。

配置

現(xiàn)在我以scp方式部署nodejs應用為例,來說明travis-ci做自動部署的配置。

首先,建立起開發(fā)機與生產(chǎn)服務器的信任關(guān)系:

ssh-copy-id username@host

然后,加密你的私鑰,私鑰文件通常在~/.ssh/id_rsa。加密私鑰文件需要使用travis這個命令行工具,它是一個ruby包,使用gem安裝:

gem install travis
travis login

輸入賬號密碼登錄成功后,使用travis encrypt-file加密:

travis encrypt-file ~/.ssh/id_rsa --add

上面命令執(zhí)行完后,會生成一段解密命令并添加到.travis.yml中:

before_install:
 - openssl aes-256-cbc -K $encrypted_830d3b21a25d_key -iv $encrypted_830d3b21a25d_iv
 -in ~/.ssh/id_rsa.enc -out ~/.ssh/id_rsa -d

接下來,把加密后的私鑰文件(id_rsa.enc)復制到代碼庫中,千萬要注意不要錯把未加密的私鑰文件(id_rsa)復制到你的代碼庫中。然后把上面的解密命令的-in ~/.ssh/id_rsa.enc改為-in id_rsa.enc

通過上面的過程就基本建立測試機與生產(chǎn)服務器的信任關(guān)系,但還有一些小細節(jié)要處理。例如,降低id_rsa文件的權(quán)限,否則ssh處于安全方面的原因會拒絕讀取秘鑰;將生產(chǎn)服務器地址加入到測試機的信任列表中,否則連接時會詢問是否信任服務器。更改后的配置如下:

before_install:
 - openssl aes-256-cbc -K $encrypted_830d3b21a25d_key -iv $encrypted_830d3b21a25d_iv
 -in id_rsa.enc -out ~/.ssh/id_rsa -d
 - chmod 600 ~/.ssh/id_rsa
 - echo -e "Host 102.201.64.94\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config

最后,測試機就可以愉快地操作生產(chǎn)服務器了,例如下面是一個nodejs應用的.travis.yml文件配置:

language: node_js
node_js:
 - '4.4.4'
before_install:
 - openssl aes-256-cbc -K $encrypted_830d3b21a25d_key -iv $encrypted_830d3b21a25d_iv
 -in id_rsa.enc -out ~/.ssh/id_rsa -d
 - chmod 600 ~/.ssh/id_rsa
 - echo -e "Host 102.201.64.94\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
script:
 - npm run test
after_success:
 - npm prune --production # 刪除devDependencies
 - tar -jcf indoor-server.tar.bz2 * # 打包并壓縮代碼
 - scp indoor-server.tar.bz2 jingsam@102.201.64.94:~/ # 復制到生產(chǎn)服務器上
 - ssh jingsam@102.201.64.94 'mkdir -p indoor-server && tar -jxf indoor-server.tar.bz2 -C indoor-server' # 解壓
 - ssh jingsam@102.201.64.94 'cd indoor-server && pm2 startOrReload pm2.json' # 重啟pm2

感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么使用travis-ci持續(xù)部署node.js應用”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

名稱欄目:怎么使用travis-ci持續(xù)部署node.js應用-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://chinadenli.net/article20/decpco.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名營銷型網(wǎng)站建設微信公眾號全網(wǎng)營銷推廣品牌網(wǎng)站設計軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站