前言
重塑自動化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服務器的加持下,引領持續集成與部署的新紀元。Flexus X 以其卓越的性能、靈活的資源配置和高效的成本優化,為 Docker 容器化應用與 Jenkins 自動化流水線提供了理想的運行環境。無論是快速構建、測試還是部署,Flexus X 都能確保流程順暢無阻,大幅提升軟件開發與交付效率。立即擁抱華為云 828 企業上云節優惠,開啟您的 Docker 與 Jenkins 自動化部署之旅,讓軟件創新更快一步!
鏈接直達:華為云Flexus云服務器X實例
Jenkins 介紹
Jenkins 是一個開源的持續集成和持續部署(CI/CD)工具,它基于 Java 開發,支持各種編程語言和平臺。Jenkins 以其強大的功能和靈活性,在現代軟件開發中扮演著重要角色。
Jenkins 應用廣泛,大多數互聯網公司都采用 Jenkins 配合 GitLab、Docker、K8s 作為實現 DevOps 的核心工具。
Jenkins 最強大的就在于插件,Jenkins 官方提供了大量的插件庫,來自動化 CI/CD 過程中的各種瑣碎功能。
Jenkins 最主要的工作就是將 GitLab 上可以構建的工程代碼拉取并且進行構建,再根據流程可以選擇發布到測試環境或是生產環境。
Jenkins 需要大量的插件保證工作,安裝成本較高,下面會基于 Docker 搭建 Jenkins。
CI/CD 的理解
一般是 GitLab 上的代碼經過大量的測試后,確定發行版本,再發布到生產環境。
CI/CD 可以理解為:
?CI 過程即是通過 Jenkins 將代碼拉取、構建、制作鏡像交給測試人員測試。
–持續集成:讓軟件代碼可以持續的集成到主干上,并自動構建和測試。
?CD 過程即是通過 Jenkins 將打好標簽的發行版本代碼拉取、構建、制作鏡像交給運維人員部署。
–持續交付:讓經過持續集成的代碼可以進行手動部署。
–持續部署:讓可以持續交付的代碼隨時隨地的自動化部署。
華為云 Flexus X 實例部署 Jenkins 的特點
靈活高效部署:華為云 FlexusX 結合 Docker,讓 Jenkins 部署變得靈活且高效,資源動態調整,構建速度顯著提升。
穩定安全運行:FlexusX 的穩定性和 Docker 的隔離性為 Jenkins 提供可靠運行環境,確保高負載下穩定運行,同時保障數據安全。
簡化管理運維:一鍵部署與華為云統一管理界面,極大簡化了 Jenkins 在 FlexusX 上的部署與管理流程,提升運維效率。
豐富插件支持:Jenkins 龐大的插件生態與 FlexusX 實例完美融合,滿足多樣化項目需求,為軟件開發團隊提供強大支持。
接下來讓我們使用 docker,一起走進 Jenkins 的世界!
環境規劃
部署流程
需要了解:
?采用 docker 方式進行部署 Jenkins(CI/CD)工具
?詳細購買配置實例可參考文章:快速部署華為云Flexus X實例,開啟您的云端之旅
?部署 docker 服務請參考文章:華為FlexusX與Docker+Nginx的高效整合之路
配置 jdk 環境
注意:選擇適合自己的 JDK,并且注意安裝 JDK 的系統
地址:https://www.oracle.com/java/technologies/downloads/
上傳軟件包 openjdk-12.0.2_linux-x64_bin.tar.gz到實例中
[root@flexusx-251f~]# mkdir /usr/local/java[root@flexusx-251f~]# cd /usr/local/java/[root@flexusx-251fjava]# lsopenjdk-12.0.2_linux-x64_bin.tar.gz
解壓軟件包
[root@flexusx-251fjava]# tar -zxvfopenjdk-12.0.2_linux-x64_bin.tar.gz
添加 java 環境變量,在文件最后添加
[root@flexusx-251f~]# vim /etc/profile[root@flexusx-251f~]# cat /etc/profile..........exportJAVA_HOME=/usr/local/java/jdk-12.0.2exportPATH=$JAVA_HOME/bin:$PATH#加載配置文件[root@flexusx-251f~]# source /etc/profile
查看 java 版本
[root@flexusx-251f~]# java -versionopenjdkversion "12.0.2"2019-07-16OpenJDKRuntime Environment (build12.0.2+10)OpenJDK64-Bit Server VM (build12.0.2+10, mixed mode, sharing)
配置 Maven 環境
打開 Maven 官網下載對應軟件包:Maven – Download Apache Maven
根據自身需求選擇對應版本,在本實例中選擇 v3.9.9
上傳軟件包
[root@flexusx-251f~]# mkdir -p/usr/local/maven[root@flexusx-251f~]# cd /usr/local/maven/[root@flexusx-251fmaven]# lsapache-maven-3.9.9-bin.tar.gz[root@flexusx-251fmaven]# tar -zxvfapache-maven-3.9.9-bin.tar.gz[root@flexusx-251fmaven]# lsapache-maven-3.9.9apache-maven-3.9.9-bin.tar.gz[root@flexusx-251fmaven]# cd apache-maven-3.9.9/[root@flexusx-251fapache-maven-3.9.9]# lsbinboot conf lib LICENSE NOTICE README.txt
解壓完畢以后,新建一個 repository 倉庫,用于存放 Maven 下載下來的 jar 包
[root@flexusx-251fmaven]# mkdir repository
編輯 settings.xml 文件
設置 maven 倉庫
[root@flexusx-251fmaven]# cd apache-maven-3.9.9/[root@flexusx-251fapache-maven-3.9.9]# vim conf/settings.xml.....................49 55/usr/local/maven/repository#設置鏡像倉庫地址...........
配置鏡像,配置為阿里云鏡像地址
................................................. maven-default-http-blockerexternal:http:*Pseudo repositoryto mirror external repositories initially using HTTP.http://0.0.0.0/true #修改為阿里云鏡像地址nexus-aliyuncentralNexus aliyunhttps://maven.aliyun.com/repository/public...................
配置環境變量
[root@flexusx-251fmaven]# vim /etc/profile...#在文件最后加入兩行參數信息 exportMAVEN_HOME=/usr/local/maven/apache-maven-3.9.9exportPATH=$PATH:$MAVEN_HOME/bin[root@flexusx-251fmaven]# mvn -vApacheMaven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)Mavenhome: /usr/local/maven/apache-maven-3.9.9Javaversion: 12.0.2, vendor: Oracle Corporation, runtime: /java/jdk-12.0.2Defaultlocale: en_US, platform encoding: UTF-8OSname: "linux", version: "5.10.0-182.0.0.95.r1941_123.hce2.x86_64", arch: "amd64", family: "unix"
搭建 Jenkins
創建對應目錄,編寫 docker-compose 文件
[root@flexusx-251f~]# mkdir /jenkins[root@flexusx-251f~]# cd /jenkins/[root@flexusx-251fjenkins]# mkdir data[root@flexusx-251fjenkins]# vim docker-compose.yaml[root@flexusx-251fjenkins]# cat docker-compose.yamlversion:"2.29.1" #指定 docker-compose 版本 services:myjenkins:image:jenkins/jenkins #指定鏡像名稱container_name:myjenkins #指定容器名稱ports:-"1020:8080" #用于主機訪問 Jenkins 的 Web 界面-"1021:50000" #用于 Jenkins 的代理(agent)連接volumes:-/jenkins/data/:/var/jenkins_home/ #指定對應目錄-/usr/local/java/jdk-12.0.2:/usr/local/java #掛載 java-/usr/local/maven/apache-maven-3.9.9:/usr/local/maven #掛載 mavenenvironment:-JAVA_OPTS=-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai' #指定時間restart:always[root@flexusx-251fjenkins]# docker-compose up -dWARN[0000]/jenkins/docker-compose.yaml:the attribute `version`is obsolete, it will be ignored, please remove it to avoid potential confusion[+]Running 2/2?Network jenkins_default Created 0.0s?Container jenkins Started 0.2s[root@flexusx-251fjenkins]# docker-compose lsNAMESTATUS CONFIG FILESjenkinsrunning(1)/jenkins/docker-compose.yaml[root@flexusx-251fjenkins]# docker ps |grepjen8e2fba3b21aajenkins/jenkins "/usr/bin/tini -- /u…"18 seconds ago Up 17 seconds 0.0.0.0:1020->8080/tcp, :::1020->8080/tcp, 0.0.0.0:1021->50000/tcp, :::1021->50000/tcp jenkins
初始化配置 Jenkins
Flexus X 實例 放行端口 1020,1021
瀏覽器輸入地址:http://主機 IP:1020
查看密碼的方式有兩種,任選其一即可
#容器內[root@flexusx-251fjenkins]# cat /jenkins/data/secrets/initialAdminPassworddd426feefcb64fa5a45a6dd743f28787[root@flexusx-251fjenkins]# docker exec -itjenkins /bin/bashjenkins@8e2fba3b21aa:/$cat /var/jenkins_home/secrets/initialAdminPassworddd426feefcb64fa5a45a6dd743f28787jenkins@8e2fba3b21aa:/$exitexit#宿主機[root@flexusx-251fjenkins]# cat /jenkins/data/secrets/initialAdminPassworddd426feefcb64fa5a45a6dd743f28787
輸入密碼進行登錄,進入插件下載頁面
點擊選擇插件來安裝,選擇需要安裝的插件(可以再搜索框進行搜索)
搜索 GIT,勾選 Git Parameter
點擊安裝
正在安裝中(等待一小會時間)
下載完畢,設置信息,點擊保存并完成,進入首頁
安裝成功
Jenkins 入門配置
構建任務
準備好 gitee 倉庫中的項目,并且通過 Jenkins 配置項目的實現當前項目的 DevOps 基本流程
?構建 Maven 工程發布到 gitee 中(gitee,github 都可以)
?gitee 官網:https://gitee.com/dashboard/projects
查看 Gitee 中的項目
Jenkins 點擊左側導航欄新建任務
選擇自由風格構建任務
配置源碼拉取地址
Jenkins 需要將 Git 上存放的源碼存儲到 Jenkins 服務所在磁盤的本地
配置任務源碼拉取地址
Jenkins 立即構建
查看構建工程的日志
可以看到源碼已經拉取帶 Jenkins 本地,可以根據第三行日志信息,查看 Jenkins 本地拉取到的源碼。
查看 Jenkins 容器中/var/jenkins_home/workspace/test01 的源碼
[root@flexusx-251fjenkins]# docker exec -itjenkins /bin/bashjenkins@8e2fba3b21aa:/$ls /var/jenkins_home/workspace/test01README.en.mdREADME.mdjenkins@8e2fba3b21aa:/$exitexit
配置 maven 構建代碼
Jenkins 配置 JDK&Maven 并保存
配置 Jenkins 任務構建代碼
?前提是你確實想要執行 Maven 的 package生命周期階段。package階段會編譯項目代碼,運行測試(如果配置了的話),并打包應用程序(如 JAR 或 WAR 文件)。
立即構建測試,查看 target 下的 jar 包(隨便找了個項目進行測試)
?https://gitee.com/zi_yinhai/day06_git_test.git
[root@flexusx-251f~]# ls /jenkins/data/workspace/test01/target/classesmaven-archiver newprojectday_06-1.0-SNAPSHOT.jargenerated-sourcesmaven-status#通過阿里云下載的鏡像會存放在這[root@flexusx-251f~]# ls /usr/local/maven/apache-maven-3.9.9/repository/antlrclassworlds commons-fileupload eu mysqlaopalliancecom commons-io javax netbackport-util-concurrentcommons-cli commons-logging junit orgchcommons-codec dom4j log4j
至此我們已經成功搭建完成持續集成工具
體驗和感受
在快節奏的軟件開發與運維領域,自動化部署已成為提升效率、減少人為錯誤的關鍵。華為云 Flexusx 服務器,憑借其卓越的性能、靈活的擴展性和穩定的云環境,為企業用戶提供了理想的自動化部署平臺。結合 Docker 容器化技術與 Jenkins 持續集成/持續部署(CI/CD)工具,Flexus X 實例更是如虎添翼,為企業開啟了自動化部署的新紀元。
Docker 的輕量級與可移植性,使得應用環境能夠輕松打包、部署與遷移,而 Jenkins 則以其強大的自動化流程管理能力,將代碼提交、構建、測試、部署等環節無縫銜接。在 Flexusx 服務器上部署 Docker 與 Jenkins,企業可以構建一套高效的自動化部署流水線,實現從代碼提交到線上運行的快速迭代。
值此 828 華為云企業上云節之際,一起體驗 Flexusx 服務器上的 Docker 與 Jenkins 自動化部署解決方案。無論您是初創公司還是大型企業,都能在這一平臺上找到適合自己的自動化部署策略。讓 Flexusx 成為您數字化轉型的加速器,Docker 與 Jenkins 則為您的軟件交付效率插上翅膀。
選擇華為云 Flexusx,攜手 Docker 與 Jenkins,共同開啟自動化部署的新篇章。點擊下方鏈接,立即行動,在 828 上云節的特惠期間,讓我們攜手并進,共創數字化未來!
產品鏈接:華為云Flexus云服務器X實例直播建站服務器-華為云
審核編輯 黃宇
-
Docker
+關注
關注
0文章
492瀏覽量
11916 -
華為云
+關注
關注
3文章
2682瀏覽量
17540 -
jenkins
+關注
關注
0文章
31瀏覽量
5163
發布評論請先 登錄
相關推薦
評論