Swift Perfect服務(wù)器端的自動(dòng)化部署

如果你覺得文章幫助了你, 關(guān)注我不迷路, 后面還會(huì)分享Perfect的更多姿勢(shì).

最開始學(xué)習(xí)Perfect框架的時(shí)候, 就思考過如何部署.后來也試過不少方式, 在今天一個(gè)比較特殊的情況下, 找到了一個(gè)我覺得目前最完美的部署方式.當(dāng)然, 如果你用的是Perfect官方支持的阿里云, 亞馬遜, 谷歌云這三種, 那么請(qǐng)直接前往這個(gè)地址就可以了. http://perfect.org/zh/assistant/

image.png

如果你和我一樣, 用的是普通的vps, 那么, 請(qǐng)繼續(xù)往下看.(貧窮使我觸發(fā)無(wú)限可能 -. -)

也許我的部署方式并不是最完美的, 如果你有更好的方式, 可以在下面評(píng)論告訴我.不甚感激.

曾經(jīng)嘗試過的部署方式思路, 有幾種.

1.通過在服務(wù)器用git的鉤子進(jìn)行部署, 在服務(wù)器上, 會(huì)有兩個(gè)用戶, 一個(gè)root用戶,
一個(gè)git用戶, 但是如果不用root權(quán)限的話, git權(quán)限的用戶找不到編譯環(huán)境, 如果強(qiáng)行把編譯環(huán)境修改到git權(quán)限的用戶,那么root用戶又無(wú)法編譯了. 自動(dòng)編譯不能用, 所以只能手動(dòng)編譯和啟動(dòng). 在無(wú)法找到更完美的部署方式前, 一直用的這個(gè).
我目前的操作步驟, 在服務(wù)器上創(chuàng)建一個(gè)git文件夾, 然后通過鉤子, 監(jiān)聽到push后, 打包該文件, 拷貝到一個(gè)編譯目錄, (直接在原來的目錄上進(jìn)行編譯, 也是可以的), 然后解壓, 解壓后手動(dòng)通過ssh進(jìn)行編譯和啟動(dòng).

2.通過官方支持的docker進(jìn)行部署, 但是在本地docker環(huán)境里面進(jìn)行編譯的時(shí)候, 始終無(wú)法完成編譯, 說缺少openssl的一個(gè)頭文件,但是在本地編譯是正常的.在兩臺(tái)系統(tǒng)版本號(hào)不同的電腦上, 都嘗試過, 結(jié)果一樣, 所以不知道是哪里錯(cuò)了...很無(wú)奈...

3.這一種方式, 也是目前我個(gè)人發(fā)現(xiàn)的最完美的方式了.

不多BB, 看思路圖.

image.png

所用到的環(huán)境以及工具

1 寶塔面板

讓服務(wù)器ssh界面化, 也是自動(dòng)化部署的關(guān)鍵, 你可以采取其他的監(jiān)聽webhook的方式, 也可以達(dá)到同樣目的

在使用面板的時(shí)候, 設(shè)置好代碼的端口后(比如8080), 記得在這個(gè)里面對(duì)你的端口進(jìn)行放行, 否則無(wú)法訪問.

image.png

2 阿里云代碼托管

3 Ubuntu服務(wù)器

4 把Ubuntu服務(wù)器的公鑰添加到阿里云代碼托管平臺(tái)

操作步驟

1.在代碼托管平臺(tái)創(chuàng)建代碼倉(cāng)庫(kù).

2.在服務(wù)器創(chuàng)建你存放Perfect代碼的目錄, 對(duì)代碼平臺(tái)的代碼倉(cāng)庫(kù)進(jìn)行g(shù)it clone

3.在寶塔面板上安裝webhook

注: 通過寶塔面板可以訪問操作文件和文件夾, 并且面板自帶了很多有用的工具, nginx, 數(shù)據(jù)庫(kù), 等.我覺得非常方便友好, 并且這個(gè)東西是免費(fèi)的, 一鍵安裝, 強(qiáng)烈建議使用. 具體有哪些功能你可以去官網(wǎng)看, 反正點(diǎn)一下又不會(huì)懷孕不是. http://bt.cn

image.png

4.安裝完后添加Hook.名稱隨便寫.

image.png

腳本內(nèi)容如下(你也可以根據(jù)你自己的情況進(jìn)行精簡(jiǎn)), 導(dǎo)入編譯環(huán)境的教程地址 http://www.itdecent.cn/p/538b685b6a62

image.png

5.把添加后的面板請(qǐng)求地址和密匙添加到代碼倉(cāng)庫(kù)的webhooks(我是用push事件來做的.你也可以用其他方式.比如tag)

image.png
image.png

6.添加成功后, 就會(huì)像這樣

image.png

7.都設(shè)置成功后, 你可以在你的面板上測(cè)試面板的webhook操作是否正確, 阿里云代碼托管平臺(tái)也可以測(cè)試發(fā)起請(qǐng)求的操作是否正確. TEST HOOK

8.在本地拉取阿里云代碼倉(cāng)庫(kù)的代碼, 進(jìn)行代碼提交, 觸發(fā)以上一系列的webhook.

以下是成果圖
image.png
image.png
image.png

簡(jiǎn)潔思路: 如果你設(shè)置的是push事件, 當(dāng)阿里云代碼托管收到你的代碼push后, 會(huì)去請(qǐng)求服務(wù)器的webhook, 服務(wù)器的webhook收到請(qǐng)求后, 會(huì)在服務(wù)器進(jìn)行1進(jìn)入代碼目錄, 2拉取阿里云的代碼, 3編譯并且啟動(dòng)的操作.感受自動(dòng)化部署的愉悅吧!

如果你覺得文章幫助了你, 關(guān)注我不迷路, 后面還會(huì)分享Perfect的更多姿勢(shì).

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,745評(píng)論 25 709
  • 寫這篇日記是為了記錄下這一年多的心理歷程,從焦慮癥開始時(shí)的毫無(wú)頭緒,到現(xiàn)在終于有了清楚的自我認(rèn)識(shí),我不知道以后我會(huì)...
    顧一禾閱讀 743評(píng)論 5 3
  • 林奕華的舞臺(tái)劇《三國(guó)》里,讓我印象最深刻的一幕是“諸葛亮三氣周瑜”,那一幕,諸葛亮說我只要說三句話就能氣死你。周瑜...
    slowlife小姐閱讀 353評(píng)論 0 1
  • 編者|肖童鞋 編輯|肖童鞋 1、綠茶的品質(zhì)特點(diǎn) 茶葉品質(zhì)的好壞,是由鮮葉質(zhì)量、采制技術(shù)決定的,鮮葉質(zhì)量又受...
    極致茶文閱讀 467評(píng)論 0 0

友情鏈接更多精彩內(nèi)容