目錄
一、持續(xù)集成工具 Jenkins 介紹
1. 什么是持續(xù)集成
2. Jenkins 介紹
二、Jenkins 的安裝與部署
1. 安裝?Jenkins
2. 本地訪問 Jenkins
3. 插件的安裝
4. 卸載 Jenkins
三、Jenkins 全局配置
1. Git 的安裝與配置
2. JDK 的安裝與配置
3. maven 的安裝與配置
三、將代碼上傳至 Git 服務(wù)器
1. Gogs 的搭建與配置
2. 將本地代碼上傳至 Gogs 的倉庫
四、任務(wù)的創(chuàng)建與執(zhí)行
一、持續(xù)集成工具 Jenkins 介紹
1. 什么是持續(xù)集成
持續(xù)集成(Continuous Integration,CI)。隨著軟件開發(fā)復(fù)雜度的不斷提高,如何更好的協(xié)同開發(fā)以確保軟件開發(fā)質(zhì)量已經(jīng)成為了開發(fā)團(tuán)隊(duì)所追求的目標(biāo),特別是近年來 “敏捷開發(fā)” 在互聯(lián)網(wǎng)領(lǐng)域的興起,如何能夠在不斷變化的需求中快速適應(yīng)和保證開發(fā)質(zhì)量顯得尤為重要。
持續(xù)集成就是針對(duì)這類問題的一種軟件開發(fā)實(shí)踐,倡導(dǎo)團(tuán)隊(duì)必須經(jīng)常集成他們的工作,而每次的集成都是通過自動(dòng)化的構(gòu)建來驗(yàn)證的,包括自動(dòng)編譯、發(fā)布、測(cè)試,從而更快發(fā)現(xiàn)集成錯(cuò)誤,讓團(tuán)隊(duì)更快的開發(fā)內(nèi)聚的軟件。
持續(xù)集成具有以下特點(diǎn):
- 是一個(gè)自動(dòng)化的周期性的集成測(cè)試過程,從檢出代碼、編譯構(gòu)建、運(yùn)行測(cè)試,再到結(jié)果記錄、測(cè)試統(tǒng)計(jì)等都是自動(dòng)完成,無需人工干預(yù)
- 需要有專門的集成服務(wù)器來執(zhí)行集成構(gòu)建
- 需要有代碼托管工具支持
持續(xù)集成的出現(xiàn),保證開發(fā)團(tuán)隊(duì)交代碼的質(zhì)量,減輕了軟件發(fā)布時(shí)的壓力;其次就是全程自動(dòng)完成,無需太多人工干預(yù),極大的減少了重復(fù)的過程,節(jié)省了時(shí)間、工作量和成本。
2. Jenkins 介紹
Jenkins 原名 Hudson,2011 年修改為 Jenkins,它是一個(gè)開源的實(shí)現(xiàn)軟件持續(xù)集成的工具。官網(wǎng)地址如下(也有中文網(wǎng)址):
JenkinsJenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their softwarehttps://www.jenkins.io/
Jenkins 能實(shí)時(shí)監(jiān)控集成中存在的錯(cuò)誤,提供詳細(xì)的日志文件和提醒功能,還可以用圖表的形式形象的展示項(xiàng)目構(gòu)建的趨勢(shì)和穩(wěn)定性。
Jenkins 具有以下特點(diǎn):
- 易安裝:官網(wǎng)下載直接運(yùn)行
- 易配置:提供了友好的 GUI 配置界面
- 變更支持:能從代碼倉庫中獲取并產(chǎn)生代碼更新列表,輸出到編譯輸出信息
- 支持永久鏈接:用戶是通過 Web 來訪問 Jenkins 的,而這些 Web 界面的鏈接地址是永久的,可在任何文檔中直接使用
- 集成 E-mail/RSS/IM
- JUnit/Test NG 測(cè)試報(bào)告:以圖表形式提供測(cè)試報(bào)告
- 文件指紋信息:會(huì)保存哪次集成構(gòu)建產(chǎn)生了哪些 jars 文件,哪次集成使用了哪個(gè)版本的 jars 文件等記錄
- 支持第三方插件
二、Jenkins 的安裝與部署
1. 安裝?Jenkins
第一步,下載 Jenkins 安裝包,打開Jenkins 官方文檔;
點(diǎn)擊 “Installing Jenkins”,可以看到可供下載的各個(gè)版本;
選擇 Linux(演示虛擬機(jī)為 CentOS 系統(tǒng))下的 CentOS 系統(tǒng);
可以看到官方提供的在線安裝方式;
打開 Xhell 并連接虛擬機(jī)/服務(wù)器,按照以下步驟進(jìn)行下載;
# 下載鏡像
wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 安裝
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 更新
yum upgrade
# 安裝 Java 環(huán)境
yum install java-11-openjdk
#安裝 Jenkins
yum install jenkins
2. 本地訪問 Jenkins
Jenkins 安裝完成之后,就可以使用 虛擬機(jī)/服務(wù)器IP:端口 在本地進(jìn)行訪問了,初始界面如下;
根據(jù)提示密碼存于?/var/lib/jenkins/secrets/initialAdminPassword 目錄中;
輸入密碼后進(jìn)入如下界面;
我們選擇安裝推薦的插件,Jenkins 便會(huì)開始自動(dòng)下載安裝,如下正在安裝;
安裝完成后,創(chuàng)建我們的第一個(gè)用戶;
進(jìn)入 Jenkins 主頁如下;
3. 插件的安裝
使用推薦安裝方式只能幫我們安裝一部分最為常用的插件,有某些插件如 maven 等還是需要我們手動(dòng)去安裝的。
點(diǎn)擊 “系統(tǒng)管理” --> “插件管理”;
在這里可以看到我們需要的插件,按需下載即可;
4. 卸載 Jenkins
# rpm卸載Jenkins
rpm -e jenkins
# 檢查是否卸載成功
rpm -ql jenkins
# 徹底刪除殘留文件
find / -iname jenkins | xargs -n 1000 rm -rf
三、Jenkins 全局配置
全局配置的目的在于告訴 Jenkins 各種工具的路徑在何處,使得 Jenkins 能夠通過插件來調(diào)用這些軟件。我們這里均采用下載壓縮包然后上傳虛擬機(jī)/服務(wù)器的方式進(jìn)行演示。
點(diǎn)擊“系統(tǒng)管理” --> “全局配置”,可以看到需要配置的插件,需要配置的有 jdk、git、maven 工具;
1. Git 的安裝與配置
(直接使用 yum 命令安裝雖然更為簡(jiǎn)單但版本會(huì)很低,為防止今后報(bào)錯(cuò)所以推薦此方式安裝)?
首先下載 git 壓縮包并上傳至虛擬機(jī)/服務(wù)器;
按照以下步驟進(jìn)行操作;
#1.解壓壓縮包
tar -zxvf?git-2.27.0.tar.gz
#2.在Linux系統(tǒng)中是需要編譯源碼的,首先下載所需要的依賴
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
#3.卸載舊版本的 git(安裝依賴是會(huì)自動(dòng)安裝 git,所以需要卸載舊版本)
yum -y remove git
#4.進(jìn)入解壓后的文件夾
cd git-2.27.0
#5.編譯git源碼
make prefix=/usr/local/git all
#6.安裝git至/usr/local/git路徑
make prefix=/usr/local/git install
#7.配置環(huán)境變量
vi /etc/profile
在底部加上該行代碼:export PATH=$PATH:/usr/local/git/bin
#8.配置完成后刷新環(huán)境變量
source /etc/profile
操作完成之后使用命令 git --version 查看 git 版本,如下 2.27 版本安裝成功;
[root@192 git-2.27.0]# git --version
git version 2.27.0
此時(shí)我們查看一下 git 路徑 which git;
[root@192 git-2.27.0]# which git
/usr/local/git/bin/git
使用該路徑設(shè)置全局配置;
?
2. JDK 的安裝與配置
下載一個(gè) jdk 的 rpm 包并上傳至虛擬機(jī)/服務(wù)器;
?
然后使用命令 rpm -ivh?jdk-8u171-linux-x64.rpm 進(jìn)行安裝;
?
安裝后的根目錄為 /usr/java/jdk1.8.0_171-amd64;
?
使用此路徑設(shè)置全局;
?
3. maven 的安裝與配置
下載 apache-maven .tar.gz 包并上傳至虛擬機(jī)/服務(wù)器;
?
解壓壓縮文件;
?
使用此路徑及解壓后的文件名設(shè)置全局;
?
全部配置完成之后,點(diǎn)擊保存、點(diǎn)擊應(yīng)用。
?
三、將代碼上傳至 Git 服務(wù)器
1. Gogs 的搭建與配置
Gogs 是一款極易搭建的自助 Git 服務(wù),它的目標(biāo)在于打造一個(gè)最簡(jiǎn)單、快速和輕松的方式搭建 Git 服務(wù)。使用 Go 語言開發(fā)的它能夠通過獨(dú)立的二進(jìn)制進(jìn)行分發(fā),支持了 Go 語言支持的所有平臺(tái),包括 Linux、Mac OS、Windows 以及 arm 平臺(tái)。與傳統(tǒng) Git 相比它最大的優(yōu)勢(shì)在于擁有圖形化界面。
第一步:下載鏡像?docker pull gogs/gogs;
[root@192 ~]# docker pull gogs/gogs
Using default tag: latest
latest: Pulling from gogs/gogs
97518928ae5f: Pull complete
d20a5437c0b4: Pull complete
ec9934e62f5f: Pull complete
2a880a4f6876: Pull complete
7bb13647629b: Pull complete
641b202f48eb: Pull complete
8f12f9a5cd7d: Pull complete
Digest: sha256:fbae7c126411d3fa3f8fdca17a65b196887ab23e3b7375f682a13daf5806bb19
Status: Downloaded newer image for gogs/gogs:latest
docker.io/gogs/gogs:latest
[root@192 ~]#
第二步:創(chuàng)建 Gogs 容器?docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs;
# 容器名稱 gogs
# 端口映射,22 端口映射為 10022,3000 端口映射為 3000
[root@192 ~]# docker run -di --name=gogs -p 10022:22 -p 3000:3000 -v /var/gogsdata:/data gogs/gogs
3af9726ff2d9430be43f7f3d78c206b9a53d356347e8a92c23316a7d2e6533f8
[root@192 ~]#
第三步:在本地瀏覽器進(jìn)行訪問,初始界面如下;?
?
此處選擇數(shù)據(jù)庫類型為?SQLite3
修改域名為 192.168.200.129
修改應(yīng)用 URL 為?http://192.168.200.129:3000/
?
隨后點(diǎn)擊“立即安裝”,Gogs 安裝與配置完成;
?
2. 將本地代碼上傳至 Gogs 的倉庫
首先我們創(chuàng)建一個(gè)倉庫;
?
創(chuàng)建成功后就可以將代碼上傳至倉庫了;
?
這里我使用 idea(本地 git 環(huán)境已搭建,這里不再贅述)以及一個(gè)示例項(xiàng)目演示上傳操作;
選中項(xiàng)目,右鍵點(diǎn)擊 “file” --> “git” --> “Repository” --> “Reomtes”;
?
接下來增加遠(yuǎn)程地址,也就是我們 Gogs 遠(yuǎn)程倉庫的地址;
此時(shí)就可以進(jìn)行代碼上傳了,先點(diǎn)擊 “Git” --> “Add”,將項(xiàng)目上傳至?xí)捍鎱^(qū);
選擇 “git” --> “Repository” --> “push” 進(jìn)行推送;
輸入用戶名和密碼登錄 Gogs 后即可推送成功;
此時(shí)再次查看 Gogs 中的倉庫,可以看到項(xiàng)目已上傳至 Gogs 倉庫;
代碼上傳至 Git 演示成功。
四、任務(wù)的創(chuàng)建與執(zhí)行
登入 Jenkins,點(diǎn)擊 “新建 Item”,輸入任務(wù)名稱并選擇“構(gòu)建一個(gè)maven項(xiàng)目”;
?
點(diǎn)擊“確定”,之后我們作出如下配置;
項(xiàng)目描述
源碼管理
build
配置完成,點(diǎn)擊保存,項(xiàng)目即創(chuàng)建完成;?
返回面板,點(diǎn)擊按鈕執(zhí)行此任務(wù);
文章來源:http://www.zghlxwxcb.cn/news/detail-779616.html
此操作相當(dāng)于我們將項(xiàng)目文件的執(zhí)行過程拿到了 Jenkins 系統(tǒng)當(dāng)中。文章來源地址http://www.zghlxwxcb.cn/news/detail-779616.html
到了這里,關(guān)于【云原生 ? DevOps】一文掌握持續(xù)集成工具 Jenkins的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!