上一篇介紹了如何把flask項目部署到伺服器
但是有個明顯的缺點:每次代碼更新都得重新打包上傳到伺服器,比較繁瑣
是以還是老套路啊,借助Jenkins和Gitee來實作代碼的自動部署,幸運的是幾年前寫過關于Jenkins使用的學習部落格,傳送門:Jenkins系列
參考之前的寫的文章,很順利地借助Jenkins把flask項目部署好了
整體步驟如下
1、在雲伺服器中部署Jenkins
因為我們要使用Jenkins來完成持續化建構,是以需要在伺服器上先部署一個Jerkins服務
我在Jenkins官網下載下傳了一個war包,然後借助tomcat部署好了,具體步驟可以百度下,網上教程很多,這裡不再贅述
如果遇到登入問題,可以參考 初次啟動jenkins,輸入給定密碼後登入失敗問題解決
2、在jenkins中安裝必要插件
因為需要使用git來拉取代碼,是以要安裝git插件,安裝完成後需要配置git的路徑
具體參考 jenkins之從0到1利用Git和Ant插件打war包并自動部署到tomcat(第二話):安裝插件,配置JDK、Git、Ant
3、通過Jenkins拉取gitee項目代碼
(1)首先把本地代碼上傳至gitee倉庫
如果你的項目是私有項目,可能還需要配置一下部署公鑰
步驟如下:
連接配接伺服器,切換至~/.ssh目錄
輸入指令ssh-keygen -t rsa -C "XXX" 生成公鑰(XXX自己定義一個名字)
建立好的公鑰如下
在碼雲的項目上添加部署公鑰
(2)打開jenkins,建立一個自由風格的job,配置源碼管理,這裡需要填寫項目的git位址(SSH形式)
假如這裡提示認證失敗,可能需要添加一下認證方式Credentials
通俗來說就是 jenkins 拉取代碼時,伺服器需要進行一次驗證,這裡需要事先配置一下,配置方法如下
在jenkins首頁點選左側菜單欄中【Credentials】,然後右側會出現一個Credentials清單
然後目光移到下方 Stores scoped to Jenkins,點選global
然後再點選左側【Add Credentials】,進入添加頁面
Kind:下拉選擇框,選擇SSH Username with private key
Scope:按照預設就行
Username:可以随便填,是你為這個認證取的名字
Private Key:選擇【Enter directly】,然後直接把私鑰輸入進來。這裡的私鑰其實是你在安裝git為了把本地git倉庫和遠端git倉庫(github或gitee)關聯起來而建立的SSH KEY(不知道怎樣生成的可以去看看git教程)
把id_rsa中的内容全部copy出來粘貼在這裡就行(說是私鑰,但是我試了下,使用id_rsa.pub也是可以的)
Passphrase:如果你在建立 ssh key 的時候輸入了 Passphrase 那就填寫相應的Passphrase,為空就不填寫 (我這裡就留白了,不過即使留白,如果建好後檢視資訊,還是會預設填上一串東西,我也不知道預設填寫的是什麼,不過沒影響到拉取代碼)
ID和Description可以不填
這樣就建立好一個Credentials,然後在配置源碼管理時就可以填寫相應的Credentials了
4、在Jenkins中添加shell指令
拉取代碼後,還需要設定Jenkins,讓它執行shell指令來啟動flask項目
之前說過,啟動flask項目的指令如下
[root@VM-8-3-centos flaskProject]# python3 run_main.py
如果想在Jenkins中,拉取項目代碼後執行啟動指令,需要在【建構環境】中添加shell指令,如下
建構一次後,打開這個建構任務的控制台輸出,如下,項目已經正常啟動了
為了試驗一下git代碼更新後,有沒有拉取新的代碼,我修改代碼中的一點内容,在下面這個檔案中加了一行數字
然後在Jenkins中重新建構一下,打開工作空間,檢視這個檔案的内容
确實多出來一串數字