成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

多機(jī)熱部署工具 Capistrano 起手式

vspiders / 633人閱讀

摘要:多機(jī)熱部署同時(shí)升級(jí)多臺(tái)服務(wù)器什么是是一種在多臺(tái)服務(wù)器上運(yùn)行腳本的開源工具,它主要用于部署應(yīng)用。它自動(dòng)完成多臺(tái)服務(wù)器上新版本的同步更新,包括數(shù)據(jù)庫(kù)的改變。

Capistrano

什么是多機(jī)熱部署

熱部署,就是在應(yīng)用正在運(yùn)行的時(shí)候升級(jí)軟件,卻不需要重新啟動(dòng)應(yīng)用。
多機(jī)熱部署 ,同時(shí)升級(jí)多臺(tái)服務(wù)器

什么是Capistrano

是一種在多臺(tái)服務(wù)器上運(yùn)行腳本的開源工具,它主要用于部署web應(yīng)用。它自動(dòng)完成多臺(tái)服務(wù)器上新版本的同步更新,包括數(shù)據(jù)庫(kù)的改變。

為什么需要Capistrano

假設(shè)我們的應(yīng)用程序是由多臺(tái)內(nèi)網(wǎng)的開發(fā)機(jī)器 ,一臺(tái)測(cè)試服務(wù)器與一臺(tái)預(yù)發(fā)布服務(wù)器 ,多臺(tái)在公網(wǎng)上提供服務(wù)的服務(wù)器構(gòu)成 . 那么我們就面臨著這樣一個(gè)問題 : 多人開發(fā)完成之后并在本地測(cè)試通過 ,其后提交到了中心的GIT服務(wù)器 . 那么我們?nèi)绾尾拍馨蒅IT中的代碼推送到測(cè)試服務(wù)器上呢 ,FTP 還是手動(dòng)到眾多服務(wù)器上挨個(gè)進(jìn)行git pull , 顯然這兩種方法都不是我們喜歡的 .
如果你希望解決這個(gè)問題 , 那么我想你是需要Capistrano的 .

Capistrano的能力

Capistrano 可以通過簡(jiǎn)單的配置與簡(jiǎn)單的命令 ,分別進(jìn)行不同環(huán)境的多臺(tái)服務(wù)器的代碼自動(dòng)拉取和更新 ,并且可以通過命令方便的進(jìn)行版本回滾 ,防止錯(cuò)誤的代碼上線提供不那么可靠的服務(wù) .
安裝Capistrano
Capistrano 是由ruby驅(qū)動(dòng)的開源程序 , 所以可以方便的使用包管理器 gem 來安裝 ,并且它依賴 ruby

安裝ruby和gem

sudo yum -y insatll ruby gem

替換gem源到國(guó)內(nèi) ,這里選用 raby-china 源

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
gem sources -l
https://gems.ruby-china.org

安裝Capistrano

gem install capistrano

建立測(cè)試的GIT項(xiàng)目
既然需要把GIT倉(cāng)庫(kù)部署到服務(wù)器上 ,那么我們首先應(yīng)該有個(gè)GIT倉(cāng)庫(kù)
以coding為例 ( gayhub私有項(xiàng)目需要付費(fèi) ,可以我并沒有錢 ).

創(chuàng)建一個(gè)私有項(xiàng)目

添加部署公鑰

得到部署公鑰 , 以linux為例 : cat ~/.ssh/id_rsa.pub

然后點(diǎn)擊右上角的 ,添加部署公鑰

粘貼剛才得到公鑰到這里 ,不需要授予推送權(quán)限 ,點(diǎn)擊新建即可

建立Capistrano工程
上述和以下操作都是在本地進(jìn)行 , 而非遠(yuǎn)程服務(wù)器上

進(jìn)入到一個(gè)你喜歡的目錄里 , 然后使用gem insatll 來初始化一個(gè)項(xiàng)目
如下這樣就是創(chuàng)建成功了

修改Capistrano配置
需要修改3個(gè)配置 , 項(xiàng)目名 , 可訪問的GIT項(xiàng)目地址 ,需要自動(dòng)部署的機(jī)器用戶名與IP地址 
值的一提的是 ,服務(wù)器與GIT地址都需要可以免密碼訪問

配置項(xiàng)目名與GIT倉(cāng)庫(kù)地址

使用你喜歡的編輯器打開 deploy 目錄下的deploy.rb 文件 ,并更新如下這些配置

配置各個(gè)環(huán)境的機(jī)器配置

Cap可以配置多種身份 ,例如dba使用的db ,前置web服務(wù)器web ......

這里只配置一臺(tái)前置服務(wù)器 ,以web身份為例 .

使用你喜歡的編輯器打開 deploy 目錄下的deploy.rb 文件 ,并更新如下這些配置 ,多臺(tái)機(jī)器以空格分割 ,這里我添加了兩臺(tái) .

確保你添加的這些機(jī)器可以不使用密碼進(jìn)行ssh遠(yuǎn)程登陸 ,否則一定會(huì)部署失敗

配置遠(yuǎn)程服務(wù)器
使Cap部署時(shí)可以不需要密碼 ,本來不打算寫 ,想了想還是補(bǔ)上了

用你喜歡的方法使用root賬戶登陸需要部署的遠(yuǎn)程服務(wù)器

把本地的公鑰使用你喜歡的方法追加到 `~/.ssh/authorized_keys 文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

最終的authorized_keys文件就像這樣子

開始部署

把最新的代碼推送到剛剛創(chuàng)建的GIT倉(cāng)庫(kù)中 ,當(dāng)然也可以不用推送 ,空項(xiàng)目默認(rèn)會(huì)有README.md

然后初始化Capistrano的目錄執(zhí)行cap production deploy

等待好消息

此時(shí)自動(dòng)部署就已經(jīng)完成了 ,接下來我們來看看遠(yuǎn)程服務(wù)器中是什么樣子的

查看遠(yuǎn)程服務(wù)器
看到這里 ,所有的疑惑大概都解開了
Cap的核心原理就是 ,當(dāng)客戶端進(jìn)行推送時(shí) ,自動(dòng)登陸到各個(gè)身份的各個(gè)服務(wù)器 ,然后自動(dòng)配置文件中的部署目錄 , 然后拉取最新的代碼到release目錄中 ,并把current軟鏈接到最新的代碼目錄.
例如laravel項(xiàng)目 . nginx的root就可以配置到 path/current/public , 然后每次推送之后 ,Cap都會(huì)幫我們把current的代碼變成最新拉取的那一份 ,我們提供的服務(wù)也就隨之更新了 .

目錄結(jié)構(gòu) , 如下
.
├── current -> /www/wwwroot/gly.inc.api.binger.site/releases/20180417091707
├── releases
│?? └── 20180417091707
├── repo
├── revisions.log
└── shared

展示

End

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28612.html

相關(guān)文章

  • 一起抽圣誕的驚喜盒子吧!(小程序手式

    摘要:平安夜圣誕節(jié)總是讓人聯(lián)想到平安果圣誕襪圣誕樹圣誕老人圣誕櫥窗等等讓人歡喜滿滿期望滿滿的詞語。禮物祝福笑臉驚喜溫暖都伴隨而來,最近課程輕松,便想著做一個(gè)有關(guān)圣誕的小程序,來當(dāng)作對(duì)小程序的初步學(xué)習(xí)。 Christmas is coming! 平安夜/圣誕節(jié)總是讓人聯(lián)想到平安果、圣誕襪、圣誕樹、圣誕老人、圣誕櫥窗等等讓人歡喜滿滿、期望滿滿的詞語。禮物、祝福、笑臉、驚喜、溫暖都伴隨而來,最...

    codecook 評(píng)論0 收藏0
  • 動(dòng)手寫個(gè)數(shù)字輸入框2:手式——攔截非法字符

    摘要:前言最近在用封裝純數(shù)字的輸入框,開發(fā)過程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。因此我們要繼續(xù)補(bǔ)充下面兩步,并且由于事件觸發(fā)時(shí)值還沒被修改,于是我們需要將值和當(dāng)前輸入值做組合來做預(yù)判,進(jìn)一步擴(kuò)大非法字符集。 前言 ?最近在用Polymer封裝純數(shù)字的輸入框,開發(fā)過程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。本系列打算分4篇來敘述這段可歌可泣的踩坑經(jīng)歷: 《動(dòng)手寫個(gè)數(shù)字輸入框1:input[...

    microcosm1994 評(píng)論0 收藏0
  • 動(dòng)手寫個(gè)數(shù)字輸入框2:手式——攔截非法字符

    摘要:前言最近在用封裝純數(shù)字的輸入框,開發(fā)過程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。因此我們要繼續(xù)補(bǔ)充下面兩步,并且由于事件觸發(fā)時(shí)值還沒被修改,于是我們需要將值和當(dāng)前輸入值做組合來做預(yù)判,進(jìn)一步擴(kuò)大非法字符集。 前言 ?最近在用Polymer封裝純數(shù)字的輸入框,開發(fā)過程中發(fā)現(xiàn)不是坑,也有不少值得研究的地方。本系列打算分4篇來敘述這段可歌可泣的踩坑經(jīng)歷: 《動(dòng)手寫個(gè)數(shù)字輸入框1:input[...

    233jl 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<