日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jenkins环境部署

發(fā)布時間:2023/12/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins环境部署 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
* 安裝Java1.8.0環(huán)境 # 如果不先安裝,后面安裝完Jenkins后需要手動配置,增加麻煩 yum -y install java-1.8.0* * 安裝Jenkins

1.yum安裝

# 下載Jenkins repo源,受限GFW,網(wǎng)速會很慢 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo # 安裝Jenkins key rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key # yum安裝Jenkins yum -y install jenkins

2.rpm安裝

訪問清華大學鏡像網(wǎng)下載

https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/ # 安裝 rpm -ivh jenkins-rpm包 # 鏈接如https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.250-1.1.noarch.rpm

Jenkins狀態(tài)操作

# 查看狀態(tài) systemctl status jenkins # 啟動 systemctl start jenkins # 停止 systemctl stop jenkins # 重啟 systemctl restart jenkins # 開機自啟 systemctl enable jenkins # 禁用開機自啟 systemctl disable jenkins

查看Jenkins配置目錄

rpm -ql jenkins/etc/init.d/jenkins # 系統(tǒng)命令 /etc/logrotate.d/jenkins /etc/sysconfig/jenkins # jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在這里配置 /usr/lib/jenkins # jenkins安裝目錄,war包會放在這里 /usr/lib/jenkins/jenkins.war # jenkins安裝war包 /usr/sbin/rcjenkins /var/cache/jenkins /var/lib/jenkins # 默認的JENKINS_HOME,修改工作目錄時,需要關閉Jenkins并將數(shù)據(jù)全部遷移到指定目錄 /var/log/jenkins # jenkins日志文件

修改配置文件

vim /etc/sysconfig/jenkins # 修改工作空間,最好不要放在系統(tǒng)盤 JENKINS_HOME # 修改Jenkins運行用戶,默認即可 JENKINS_USER # 修改Jenkins使用端口,被占用可導致啟動失敗,按照需要修改 JENKINS_PORT

修改插件源

# 注意,該配置文件位于工作空間 sed -i 's#https://updates.jenkins.io/update-center.json#https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json#g' /var/lib/jenkins/hudson.model.UpdateCenter.xml # 重啟生效 systemctl restart jenkins

查看初始化密碼

# 注意,該配置文件位于工作空間下 # 初次訪問前端頁面的時候,Jenkins也會做一次提示 cat /var/lib/jenkins/secrets/initialAdminPassword

訪問前端頁面

# 訪問安裝服務器的ip:port,如果無法訪問,應該是因為防火墻問題導致 # 查看防火墻狀態(tài) systemctl status firewalld # 關閉防火墻 systemctl stop firewalld # 啟動防火墻 systemctl start firewalld # 重啟防火墻 systemctl restart firewalld# 直接關閉整個防火墻是很粗暴的方式,特別是對外暴露時,會增加不必要的風險,建議使用以下方式# 防火墻開放端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent # 重新載入配置,只有重新載入配置才會生效 firewall-cmd --reload # 查看端口是否開放 firewall-cmd --query-port=8080/tcp # 查看開放端口列表 firewall-cmd --list-port# firewalld命令解釋 --zone=public 作用域 --add-port=8080/tcp 開放端口,端口/協(xié)議 --permanent 永久生效,不添加重啟后失效

安裝插件

# 選擇推薦或者自定義都可以 # 或者直接從現(xiàn)有的Jenkins復制插件(比較快),前提是Jenkins需要先行關閉,并且未通過界面安裝插件,插件位于工作目錄下,注意,需要保證復制過來的插件文件夾權限與現(xiàn)有Jenkins權限保持一致,否則會導致讀取不到,需要可以找我要,400M左右 # 至少需要安裝插件列表 所有git插件 Groovy Gradle Pipeline JaCoCo * 以下為前端訪問時操作

輸入管理員密碼,完成初始化

選擇插件配置
插件安裝或者復制完成后界面

創(chuàng)建job,選擇流水線

配置git拉取代碼

# Linux環(huán)境下登錄Jenkins使用用戶jenkins(默認是這個用戶),生成ssh公鑰 su - jenkins* 無法切換到jenkins用戶時,需要注意passwd中是否做了限制 cat /etc/passwd | grep jenkins jenkins:x:997:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false * 如上,/bin/false會導致無法登錄,修改/bin/false為/bin/bash即可# 生成ssh公私鑰,后續(xù)一直回車即可 -bash-4.2$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): Created directory '/var/lib/jenkins/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa. Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub. The key fingerprint is: SHA256:XUq0xsu39Jl3mluTYdW/doKAvw1PZFXk7a2wqKspzLc jenkins@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ | . .o| | o . oo| | = . . =| | * + . .+| | S * * o+| | . B *.++| | o + = *==| | + .. . * .*+| | oEoo.. o +. | +----[SHA256]-----+# 查看并復制ssh公鑰 cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGBUueeVjr7CCk/+wq8I9TouN5pJ2CBkHZhSjlq9l5C2Fx5u/xpMXgvS3JAgfegMWqNXL+Mu9Dsj6kPBx3D7/an4+Ivm/VlscN6BNH8wuRYk9HwIlvLhw7JurfIuyZGcqIQ7uCL3W59x7MDKD+wOg06By1Mm6H+BEjDXVD3QQvgCHUmm3Cv3ogBEcyT4RHHGNvT2wYeh9XT82EHEo0SZCiP4/B7oVpLa1ctcT53wKXiGmvdsTJp9i9N6BCvzL8IkA7qvwLPJXNMxzixe6MqS0079om1/DLduXK3IxBQwMsjP2klU8TC8JidGiig3Yby+j1WxgBsXZFNqdrtfSX4Ngv jenkins@localhost.localdomain# 以項目管理員或者系統(tǒng)管理員登錄到gitlab中,打開用戶設置\SSH密鑰,添加生成的ssh公鑰,保證遠程拉取git身份驗證通過 # 驗證,必須在Jenkins用戶下驗證,初次需要手動保存ssh信息,也即驗證是必須的,如下藍色文字 git clone git@gitlab該用戶所擁有項目的gitlab地址[root@localhost jenkins]# su - jenkins Last login: Wed Jul 29 04:18:09 EDT 2020 on pts/0 -bash-4.2$ git clone git@39.108.108.71:foshannsh/fsnsh_backend.git Cloning into 'fsnsh_backend'... The authenticity of host '39.108.108.71 (39.108.108.71)' can't be established. RSA key fingerprint is SHA256:bZ9PXBXAImibOcBWWT3T+ozQYfg3ixSGmXQi0ISV1wA. RSA key fingerprint is MD5:c6:32:8e:2d:4f:28:f2:9b:35:b0:c8:13:38:80:e2:14. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '39.108.108.71' (RSA) to the list of known hosts. remote: Enumerating objects: 34867, done. remote: Counting objects: 100% (34867/34867), done. remote: Compressing objects: 100% (8784/8784), done. remote: Total 34867 (delta 9784), reused 34759 (delta 9762) Receiving objects: 100% (34867/34867), 7.06 MiB | 681.00 KiB/s, done. Resolving deltas: 100% (9784/9784), done.# 配置pipeline node{stage('生成變量信息'){env.TARGET_BRANCH = "hotfix"env.GITLABSSHID = ""env.GITLABREPO = "git@39.108.108.71:foshannsh/fsnsh_backend.git"}stage('拉取代碼'){echo "PULL CODE"git branch: "${TARGET_BRANCH}", credentialsId: "GITLABSSHID", url: "${GITLABREPO}"} }

使用Jenkins拉取代碼

使用Jenkins打包jar

# Jenkins機器上必須要有Java環(huán)境以及maven,如何安裝參照之前的文檔 # 這里僅提供基礎的pipeline腳本編寫 # 在上述代碼的基礎上繼續(xù)編寫,添加maven打包腳本 node{stage('生成變量信息'){env.TARGET_BRANCH = "hotfix"env.GITLABSSHID = ""env.GITLABREPO = "git@39.108.108.71:foshannsh/fsnsh_backend.git"}stage('拉取代碼'){echo "PULL CODE"git branch: "${TARGET_BRANCH}", credentialsId: "GITLABSSHID", url: "${GITLABREPO}"}stage("構建jar包"){sh label: '', script: 'cd $WORKSPACE/fsnsh && mvn clean package -Dmaven.test.skip=true'} } # 需要注意,是否需要依賴到外部的資源,如果需要,需要在root用戶下,在/root/.m2/添加配置文件

使用Jenkins勾起自動化測試

# 這里僅提供基礎的pipeline腳本編寫 # 在上述代碼的基礎上繼續(xù)編寫,添加勾起自動化腳本 node{stage('生成變量信息'){env.TARGET_BRANCH = "hotfix"env.GITLABSSHID = ""env.GITLABREPO = "git@39.108.108.71:foshannsh/fsnsh_backend.git"}stage('拉取代碼'){echo "PULL CODE"git branch: "${TARGET_BRANCH}", credentialsId: "GITLABSSHID", url: "${GITLABREPO}"}stage("構建jar包"){sh label: '', script: 'cd $WORKSPACE && mvn clean package -Dmaven.test.skip=true'}stage("自動化測試"){sh label: '', script: 'python /root/autoTest.py'}stage("執(zhí)行單元測試"){catchError(buildResult: 'SUCCESS', message: 'The unit test have a few of fail test case.') {sh label: '', script: 'cd $WORKSPACE && mvn clean test -Punittest -Dspring.profiles.active=unittest'}}stage("生成單元測試報告"){echo "Output jacoco report to xml"sh label: '', script: 'cd $WORKSPACE && mvn org.jacoco:jacoco-maven-plugin:report -Punittest -Dspring.profiles.active=unittest'tapdTestReport frameType: 'JUnit', onlyNewModified: true, reportPath: 'fsnsh-spring-boot-starter/target/surefire-reports/*.xml'publishCoverage adapters: [jacocoAdapter('**/target/site/jacoco/jacoco.xml')], sourceFileResolver: sourceFiles('NEVER_STORE')jacoco exclusionPattern: '**/*Test*.class', execPattern: ' **/**.exec', inclusionPattern: '**/*.class', sourceExclusionPattern:'**/src/main/java/com/hashtech/ifund/backend/**/*Example*.*,**/src/main/java/com/hashtech/ServiceApplication.java'}stage("sonarqube檢查"){sh label: '', script: 'cd $WORKSPACE && /usr/local/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=iFund-backend -Dsonar.projectName=iFund-backend -Dsonar.sourceEncoding=UTF-8 -Dsonar.sources=./src/main/java -Dsonar.java.binaries=. -Dsonar.tests=./src/test/java -Dsonar.exclusions=com/hashtech/fsnsh/backend/**/*Example*.*,com/hashtech/ServiceApplication.* -Dsonar.core.codeCoveragePlugin=jacoco -Dsonar.jacoco.reportPaths=**/target/coverage-reports/jacoco-unit.exec} } * 實現(xiàn)流水線構建更新,可以結(jié)合軟件基礎環(huán)境-6中提到的shell腳本

總結(jié)

以上是生活随笔為你收集整理的Jenkins环境部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。