Jenkins部署

FuShudi發表於2024-06-22

CI/CD介紹

網際網路軟體的開發和釋出,已經形成了一套標準流程,假如把開發工作流程分為以下幾個階段:

編碼 → 構建 → 整合 → 測試 → 交付 → 部署

在這裡插入圖片描述

正如你在上圖中看到,持續整合(Continuous Integration)、持續交付(Continuous Delivery)和持續部署(Continuous Deployment)有著不同的軟體自動化交付週期。

持續整合(CI)

上面整個流程中最重要的組成部分就是持續整合(Continuous integration,簡稱CI)。

持續整合指的是,頻繁地(一天多次)將程式碼整合到主幹。將軟體個人研發的部分向軟體整體部分交付,頻繁進行整合以便更快地發現其中的錯誤。

它的好處主要有兩個:

  1. 快速發現錯誤。每完成一點更新,就整合到主幹,可以快速發現錯誤,定位錯誤也比較容易;
  2. 防止分支大幅偏離主幹。如果不是經常整合,主幹又在不斷更新,會導致以後整合的難度變大,甚至難以整合。

持續整合並不能消除Bug,而是讓它們非常容易發現和改正。持續整合的目的,就是讓產品可以快速迭代,同時還能保持高質量。它的核心措施是,程式碼整合到主幹之前,必須通過自動化測試。只要有一個測試用例失敗,就不能整合。

持續交付

持續交付(Continuous delivery)指的是,頻繁地將軟體的新版本,交付給質量團隊或者使用者,以供評審。如果評審通過,程式碼就進入生產階段。

持續交付在持續整合的基礎上,將整合後的程式碼部署到更貼近真實執行環境的「類生產環境」(production-like environments)中。持續交付優先於整個產品生命週期的軟體部署,建立在高水平自動化持續整合之上。

持續交付可以看作持續整合的下一步。它強調的是,不管怎麼更新,軟體是隨時隨地可以交付的。

持續部署(CD)

持續部署(continuous deployment)是持續交付的下一步,指的是程式碼通過評審以後,自動部署到生產環境。

持續部署的目標是,程式碼在任何時刻都是可部署的,可以進入生產階段。

持續部署的前提是能自動化完成測試、構建、部署等步驟。

總的來說,持續整合、持續交付、持續部署提供了一個優秀的 DevOps 環境。對於整個開發團隊來說,能很大地提升開發效率,好處與挑戰並行。無論如何,頻繁部署、快速交付以及開發測試流程自動化都將成為未來軟體工程的重要組成部分。

Jenkins介紹

Jenkins是一個獨立的開源自動化伺服器,可用於自動化各種任務,如構建,測試和部署軟體。Jenkins可以通過本機系統包Docker安裝,甚至可以通過安裝Java Runtime Environment的任何機器獨立執行。
Jenkins是一個開源的、提供友好操作介面的持續整合(CI)工具,起源於Hudson(Hudson是商用的),主要用於持續、自動的構建/測試軟體專案、監控外部任務的執行(這個比較抽象,暫且寫上,不做解釋)。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中執行,也可獨立執行。通常與版本管理工具、構建工具結合使用。常用的版本控制工具有SVN、GIT,構建工具有Maven、Ant、Gradle。

部署

# 本地源
[root@localhost ~]# yum -y install java-1.8.0-openjdk*
[root@localhost ~]#java -jar jenkins.war

在這裡插入圖片描述
複製密碼進入

[root@localhost ~]# cat /root/.jenkins/secrets/initialAdminPassword
371c4f91c6a847e8ad62e064baad9808

按步驟建立賬戶完成配置
在這裡插入圖片描述
在這裡插入圖片描述
由於此種方式執行會佔據前端,不推薦.下面介紹第二種

運用容器

## 安裝tomcat
[root@localhost ~]# ls
anaconda-ks.cfg
apache-maven-3.6.3-bin.tar.gz
apache-tomcat-9.0.16.tar.gz
jenkins.war
[root@localhost ~]# tar xf apache-tomcat-9.0.16.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local
[root@localhost local]# ls
apache-tomcat-9.0.16  games    lib64    share
bin                   include  libexec  src
etc                   lib      sbin
[root@localhost local]# ln -s apache-tomcat-9.0.16/ tomcat

# 將程式放到webapps裡
[root@localhost local]# cd tomcat
[root@localhost tomcat]# ls
bin              lib      README.md      webapps
BUILDING.txt     LICENSE  RELEASE-NOTES  work
conf             logs     RUNNING.txt
CONTRIBUTING.md  NOTICE   temp
[root@localhost tomcat]# cd webapps/
[root@localhost webapps]# cp ~/jenkins.war .
[root@localhost webapps]# ls
docs      host-manager  manager
examples  jenkins.war   ROOT

# 啟動
[root@localhost webapps]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

用第一種方式中建立好的賬戶登入
在這裡插入圖片描述

Jenkins配置

在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

漢化

1 、安裝外掛
主介面 -> 系統管理 -> 外掛管理 -> 可選外掛

安裝這兩個外掛,然後重啟 Jenkins

  • 安裝外掛Locale plugin
    在這裡插入圖片描述

  • 安裝外掛Localization: Chinese(Simplified)
    在這裡插入圖片描述
    到此已經修改成功
    在這裡插入圖片描述

後續舊版本步驟

修改配置
若修改為中文簡體,Default Language設定為:
zh_cn
若修改為中文繁體,Default Language設定為:
zh_tw
若要修改回英文,Default Language設定為:
en_us
在這裡插入圖片描述

相關文章