Jenkins从下载到部署项目的流程
Jenkins安裝配置
1.1 Jenkins介紹
Jenkins 是一款流行的開源持續集成(Continuous Integration)工具,廣泛用于項目開發,具有自動化構建、測試和部署等功能。官網: http://jenkins-ci.org/。
Jenkins的特征:
開源的 Java語言開發持續集成工具,支持持續集成,持續部署。
易于安裝部署配置:可通過 yum安裝,或下載war包以及通過docker容器等快速實現安裝部署,可方便web界面配置管理。
消息通知及測試報告:集成 RSS/E-mail通過RSS發布構建結果或當構建完成時通過e-mail通知,生成JUnit/TestNG測試報告。
分布式構建:支持 Jenkins能夠讓多臺計算機一起構建/測試。
文件識別: Jenkins能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等。
豐富的插件支持:支持擴展插件,你可以開發適合自己團隊使用的工具,如 git,svn,maven,docker等。
Jenkins安裝和持續集成環境配置
1 )首先,開發人員每天進行代碼提交,提交到Git倉庫
2)然后,Jenkins作為持續集成工具,使用Git工具到Git倉庫拉取代碼到集成服務器,再配合JDK,Maven等軟件完成代碼編譯,代碼測試與審查,測試,打包等工作,在這個過程中每一步出錯,都重新再執行一次整個流程。
3)最后,Jenkins把生成的jar或war包分發到測試服務器或者生產服務器,測試人員或用戶就可以訪問應用。
1.2 Jenkins環境搭建
1.2.1 Jenkins安裝配置
可以導入資料中的鏡像:
服務器用戶名:root 密碼:itcastjenkins 用戶名:itcast 密碼:itcast采用YUM方式安裝
加入jenkins安裝源:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificatesudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key執行yum命令安裝:
yum -y install jenkins采用RPM安裝包方式
Jenkins安裝包下載地址
wget https://pkg.jenkins.io/redhat-stable/jenkins-2.190.1-1.1.noarch.rpm執行安裝:
rpm -ivh jenkins-2.190.1-1.1.noarch.rpm配置:
修改配置文件:
vi /etc/sysconfig/jenkins修改內容:
# 修改為對應的目標用戶, 這里使用的是root $JENKINS_USER="root" # 服務監聽端口 JENKINS_PORT="16060"目錄權限:
chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins重啟:
systemctl restart jenkins如果啟動失敗, 出現錯誤信息:
Starting Jenkins bash: /usr/bin/java: No such file or directory創建JAVA環境的軟鏈接:
ln -s /usr/local/jdk/bin/java /usr/bin/java管理后臺初始化設置
http://192.168.200.100:16060/
需要輸入管理密碼, 在以下位置查看:
cat /var/lib/jenkins/secrets/initialAdminPassword按默認設置,把建議的插件都安裝上
這一步等待時間較長, 安裝完成之后, 創建管理員用戶:
配置訪問地址:
配置完成之后, 會進行重啟, 之后可以看到管理后臺:
1.2.2 Jenkins插件安裝
在實現持續集成之前, 需要確保以下插件安裝成功。
Maven Integration plugin: Maven 集成管理插件。
Docker plugin: Docker集成插件。
GitLab Plugin: GitLab集成插件。
Publish Over SSH:遠程文件發布插件。
SSH: 遠程腳本執行插件。
安裝方法:
進入【系統管理】-【插件管理】
點擊標簽頁的【可選插件】
在過濾框中搜索插件名稱
勾選插件, 點擊直接安裝即可。
在安裝插件的高級配置中,修改升級站點的連接為: http://updates.jenkins.io/update-center.json 保存
1.2.3 Git安裝配置
yum 安裝方式
采用源碼包方式安裝
安裝依賴包
如果之前有安裝舊版本, 先做卸載, 沒有安裝則忽略
下載源碼包
也可以安裝其他版本, 地址:https://mirrors.edge.kernel.org/pub/software/scm/git/
編譯安裝
檢查git版本
1.2.4 Maven安裝配置
下載安裝包
下載地址: https://maven.apache.org/download.cgi
解壓安裝包
配置
環境變量配置
vi /etc/profile增加:
export MAVEN_HOME=/usr/local/maven/apache-maven-3.3.9 export PATH=$PATH:$MAVEN_HOME/bin如果權限不夠,則需要增加當前目錄的權限
chmod 777 /usr/local/maven/apache-maven-3.3.9/bin/mvn修改鏡像倉庫配置:
vi /usr/local/maven/apache-maven-3.3.9/conf/settings.xml需要把本機的倉庫打包上傳到服務器上(不上傳會自動下載)
然后指定上傳后的倉庫配置
1.2.5 Docker安裝配置
更新軟件包版本
卸載舊版本
安裝軟件依賴包
設置yum源為阿里云
安裝后查看docker版本
啟動
設置開機啟動:
systemctl enable docker啟動docker
systemctl start docker2 持續集成生產實踐配置
2.1 Jenkins工具配置
進入【系統管理】--> 【全局工具配置】
MAVEN配置全局設置
指定JDK配置
指定MAVEN 目錄
指定DOCKER目錄
如果不清楚docker的安裝的目錄,可以使用whereis docker 命令查看docker的安裝的目錄
設置遠程應用服務主機
添加憑證:
新增憑證,輸入用戶名和密碼保存即可
進入【系統管理】-【系統設置】
輸入主機名稱和登陸信息, 點擊【check connections】驗證, 如果成功, 會顯示“Successfull connection”。
所有環境配置完成以后,可以使用maven的命令進行打包
如果使用 mvn package 則默認加載dev的環境,也可以使用mvn package -P prod 指定環境打包
2.2 服務集成Docker配置
每個微服務使用的dockerfile的方式進行構建鏡像后創建容器,需要在每個微服務中添加docker相關的配置
(1)修改每個微服務的pom文件,添加dockerfile的插件
<properties><docker.image>docker_storage</docker.image> </properties> <build><finalName>restkeeper-gateway</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.7.0</version><configuration><source>${java.version}</source><target>${java.version}</target></configuration></plugin><plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>1.3.6</version><configuration><repository>${docker.image}/${project.artifactId}</repository><buildArgs><JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration></plugin></plugins> </build>(2)在每個微服務的根目錄下創建Dockerfile文件,如下:
# 設置JAVA版本 FROM java:8 # 指定存儲卷, 任何向/tmp寫入的信息都不會記錄到容器存儲層 VOLUME /tmp # 拷貝運行JAR包 ARG JAR_FILE COPY ${JAR_FILE} app.jar # 設置JVM運行參數, 這里限定下內存大小,減少開銷 ENV JAVA_OPTS="\ -server \ -Xms256m \ -Xmx512m \ -XX:MetaspaceSize=256m \ -XX:MaxMetaspaceSize=512m" # 入口點, 執行JAVA運行命令 ENTRYPOINT java ${JAVA_OPTS} -jar /app.jar2.3 基礎依賴打包配置
在微服務運行之前需要在本地倉庫中先去install所依賴的jar包,所以第一步應該是從git中拉取代碼,并且把基礎的依賴部分安裝到倉庫中
(1)新創建一個item,起名為restkeeper
(2)配置當前reskeeper
描述項目
源碼管理:
選中git,輸入git的倉庫地址(前提條件,需要把代碼上傳到gitee倉庫中),最后輸入getee的用戶名和密碼
如果沒有配置Credentials,可以選擇添加,然后輸入用戶名密碼即可
其中構建觸發器與構建環境暫不設置
設置構建配置
選擇Invoke top-level Maven targets
maven版本:就是之前在jenkins中配置的maven
目標:輸入maven的命令 clean install -Dmaven.test.skip=true 跳過測試安裝
(3)啟動項目
創建完成以后可以在主頁上看到這個item
啟動項目:點擊剛才創建的項目,然后Build Now
在左側可以查看構建的進度:
點進去以后,可以查看構建的日志信息
構建的過程中,會不斷的輸入日志信息,如果報錯也會提示錯誤信息
jenkins會先從git倉庫中拉取代碼,然后執行maven的install命令,把代碼安裝到本地倉庫中
最終如果是success則為構建成功
2.4 運營端后臺部署
(1)新建item,創建restkeeper_operator_service微任務任務
(2)配置
概述
源碼管理
構建
配置maven
執行maven命令:clean install -Dmaven.test.skip=true dockerfile:build -f restkeeper_service/restkeeper_operator/pom.xml
-Dmaven.test.skip=true 跳過測試-P prod 指定環境為生成環境
dockerfile:build 啟動dockerfile插件構建容器
-f restkeeper_service/restkeeper_operator/pom.xml 指定需要構建的文件(必須是pom)
執行shell命令
if [ -n "$(docker ps -a -f name=$JOB_NAME --format '{{.ID}}' )" ]then#刪除之前的容器docker rm -f $(docker ps -a -f name=$JOB_NAME --format '{{.ID}}' ) fi# 清理鏡像 docker image prune -f # 啟動docker服務 docker run -d --net=host --name $JOB_NAME docker_storage/$JOB_NAME這里不是只單純的啟動服務, 我們要考慮每次構建, 都會產生鏡像, 所以要先做檢查清理, 然后再啟動服務。
Docker有五種網絡連接模式, 因為我們不是所有服務都采用docker構建, 中間件服務部署在宿主機上面, 這里我們采用host模式, 這樣docker容器和主機服務之間就是互通的。
bridge模式
使用命令: --net=bridge, 這是dokcer網絡的默認設置,為容器創建獨立的網絡命名空間,容器具有獨立的網卡等所有單獨的網絡棧,這是默認模式。
host模式
使用命令: --net=host,直接使用容器宿主機的網絡命名空間, 即沒有獨立的網絡環境。它使用宿主機的ip和端口。
none模式
命令: --net=none, 為容器創建獨立網絡命名空間, 這個模式下,dokcer不為容器進行任何網絡配置。需要我們自己為容器添加網卡,配置IP。
container模式
命令: --net=container:NAME_or_ID, 與host模式類似, 這個模式就是指定一個已有的容器,共享該容器的IP和端口。
自定義模式
docker 1.9版本以后新增的特性,允許容器使用第三方的網絡實現或者創建單獨的bridge網絡,提供網絡隔離能力。
到此就配置完畢了,保存即可
(3)啟動該項目 Build Now
首先從git中拉取代碼
編譯打包項目
構建鏡像
創建容器
刪除多余的鏡像
編譯過程
構建成功
2.5 運營端web工程部署
可以參考restkeeper_operator微服務創建其他微服務,每個項目可能會有不同的maven構建命令,請按照實際需求配置
restkeeper_operator_web微服務的配置:
部署成功后
2.6 網關部署
可以參考restkeeper_operator微服務部署restkeeper_gateway
maven命令:clean install -Dmaven.test.skip=true dockerfile:build -f restkeeper_gateway/pom.xml構建成功
http://192.168.200.100:9000/#/stacks
2.7 測試
返回結果
總結
以上是生活随笔為你收集整理的Jenkins从下载到部署项目的流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 空格 separater_Ja
- 下一篇: java积累(一)------后端---