Devops+Jenkins+flask部署


一、DevOps簡介

DevOps(英文Development和Operations是一組過程、方法與系統的統稱,DevOps是一組最佳實踐強調(開發、運維、測試)在應用和服務生命周期中的協作和溝通,強調整個組織的合作,以及交付和基礎設施變更的自動化,從而實現持續集成、持續部署和持續交付

1、什么是持續集成

持續集成是指開發人員在程序的開發過程中,可以頻繁的將代碼部署集成到主干,並進程自動化測試

  1. 持續集成中的任何一個環節都是自動完成的,無需太多的人工干預,有利於減少重復過程以節省時間、費用和工作量
  2. 持續集成保障了每個時間點上團隊成員提交的代碼是能成功集成的。換言之,任何時間點都能第一時間發現軟件的集成問題,使任意時間發布可部署的軟件成為了可能
  3. 持續集成還能利於軟件本身的發展趨勢,這點在需求不明確或是頻繁性變更的情景中尤其重要,持續集成的質量能幫助團隊進行有效決策,同時建立團隊對開發產品的信心

2、什么是持續交付

持續交付指的是在持續集成的環境基礎之上,將代碼部署到預生產環境。

3、什么是持續部署

在持續交付的基礎上,把部署到生產環境的過程自動化,持續部署和持續交付的區別就是最終部署到生產環境是自動化的。

二、部署簡介

一般網站部署的流程:

  • 需求分析
  • 原型設計
  • 開發代碼
  • 內網部署
  • 提交測試
  • 確認上線
  • 備份數據
  • 外網更新
  • 最終測試

三、部署流程

jenkins工具平台可以實現全自動部署+測試,是一個可擴展的持續集成引擎,是一個開源軟件項目,旨在提供一個開放易用的軟件平台,使軟件的持續集成變成可能,Jenkins非常易於安裝和配置。

由於jenkins是使用java代碼開發的,所以我們需要安裝java容器才能運行jenkins。

1、安裝java

sudo apt install openjdk-8-jdk

2、安裝Jenkins

包含在默認Ubuntu軟件包中的Jenkins版本往往落后於項目本身的最新版本。 為了利用最新的修復和功能,我們將使用項目維護的軟件包來安裝Jenkins。

首先,我們將存儲庫密鑰添加到系統。

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

當這兩個都到位時,我們將運行update ,以便apt-get將使用新的存儲庫:

sudo apt-get update

最后,我們將安裝Jenkins及其依賴項,包括Java:

sudo apt-get install jenkins

3、開始Jenkins

使用systemctl我們將啟動Jenkins:

sudo systemctl start jenkins

由於systemctl不顯示輸出,我們將使用其status命令來驗證它是否成功啟動:

sudo systemctl status jenkins

如果一切順利,輸出的開始應顯示服務處於活動狀態,並配置為啟動時啟動:

● jenkins.service - LSB: Start Jenkins at boot time
  Loaded: loaded (/etc/init.d/jenkins; bad; vendor preset: enabled)
  Active:active (exited) since Thu 2017-04-20 16:51:13 UTC; 2min 7s ago
    Docs: man:systemd-sysv-generator(8)

4、設置Jenkins

要設置我們的安裝,我們將使用服務器域名或IP地址訪問Jenkins的默認端口8080http:// ip_address_or_domain_name :8080

默認端口是8080,有時候由於端口占用需要修改如下:

  • 檢查 /etc/init.d/jenkins 腳本,修改 do_start 函數的 check_tcp_port 命令,端口號從 8080 換成 8082:
  • 修改 /etc/default/jenkins 文件,將端口 8080 改成 8082
HTTP_PORT=8082
  • 重啟Jenkins
sudo systemctl restart jenkins

我們應該看到“解鎖Jenkins”屏幕,顯示初始密碼的位置

img

在終端窗口中,我們將使用cat命令顯示密碼:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

我們將從終端復制32個字符的字母數字密碼,並將其粘貼到“管理員密碼”字段中,然后單擊“繼續”。 下一個屏幕提供安裝建議的插件或選擇特定插件的選項。

img

我們將點擊“安裝建議的插件”選項,這將立即開始安裝過程:

img

安裝完成后,系統將提示您設置第一個管理用戶。 可以跳過此步驟,並使用上面使用的初始密碼作為admin繼續,但是我們將花一點時間創建用戶。

img

創建一個admin用戶,密碼自己定義

img

一旦第一個管理員用戶到位,你應該看到一個“Jenkins准備好了!” 確認屏幕。

img

點擊“開始使用Jenkins”來訪問主要的Jenkins儀表板:

img

查看

[ubuntu@ip-172-31-43-146 ~]$ sudo netstat -plntu|grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      14788/java  

此時,Jenkins已經成功運行。

四、創建項目

默認python3以及python的代碼包已經在服務器上下載好了。

我們訪問已經部署好的jenkins項目

image-20210505001306632

1、新建item

選擇freestyle project

image-20210505001425421

點擊確認之后我們可以看到如下界面

image-20210505001619598

我們最需要關注的就是源碼管理,以及環境的構建,暫且不管項目的配置。我們先看一下gitee或者github的配置。

2、gitee上的公私鑰配置

源碼管理方面我們是從gitee中拉取項目代碼,如下圖所示:

image-20210505002812198

所以我們需要將公鑰放在gitee中。

訪問我的gitee點擊個人設置,查看ssh公鑰。我是之前就添加進來的一個公鑰。

image-20210505001924792

公私鑰如何產生。我們要在我們搭建了jenkins的服務器上生成公私鑰。

image-20210505002535709

image-20210505002613182

將公鑰放在gitee上。

image-20210505002639063

3、jenkins的項目配置

回到jenkins的項目配置頁面

源碼管理中輸入我們的源碼ssh的url地址,如圖所示

image-20210505002946367

添加憑證

image-20210505003008143

image-20210505003353864

然后發現我們的項目不紅了

image-20210505003439403

但是要填寫這兩個內容(否則項目不會工作)

這兩個內容,我們用如下方式獲取

image-20210505004054604

image-20210505004141622

點擊保存,返回面板,我們部署一下項目嘗試。

image-20210505004229267

點擊之后,我們查看工作空間,如下圖,我們的項目部署成功。

image-20210505023243507

部署失敗的話,可以查看左側的日志欄。

4、啟動項目

配置啟動腳本。

image-20210505023605603

點擊立即構建

訪問頁面。成功!

image-20210505005743817

5、配置任務觸發時間表達式

繼續配置當前的項目

Jenkins 定時任務觸發時間表達式 ,H/2 * * * * (2分鍾檢查一下版本庫 如果有更新就不觸發 如果沒有更新就不觸發)

image-20210505005420500

6、修改項目代碼

一旦修改項目,並push上去,jenkins就會每兩分鍾檢查一次是否改變,如果改變就會觸發構建!

image-20210505005839659

如圖所示。

image-20210505011907740


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM