jenkins持續部署CD

前言

在測試行業打滾了四年了,還沒有接觸過cicd的東西,剛好有時間就學習起來了,因此有了這篇學習筆記。簡單地介紹本文的內容,這邊文章主要記錄了本人從環境準備,到sonarqube簡單集成,最后達到簡單的持續部署的實踐過程。

一、安裝

使用vmware安裝centos7虛擬機,安裝過程就省略了。

配置橋接模式:

1.在虛擬機設置-網絡適配器,選擇橋接模式,并勾選 “復制物理網絡連接狀態”

2.檢查vmware中是否有橋接網絡,在vmware的菜單-編輯->虛擬網絡編輯器,查看橋接類型的網絡是否存在。若不存在,需要點擊橋接模式,選擇本地物理網卡,點擊添加網絡即可

安裝jenkins:

1.打開虛擬機的終端,切換到root,運行以下命令:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

yum install jenkins

2.由于使用這種方式安裝,jenkins會自動注冊成linux服務,可以通過systemctl?start?jenkins?或systemctl stop jenkins?啟動或停止服務

3.確認jenkins服務啟動后,打開瀏覽器localhost:8080?就可以見到老頭了。如果在別的機器上無法訪問,十有八九是防火墻的問題。使用systemctl stop firewalld?關閉防火墻即可

4.初始登錄密碼可以在/var/lib/jenkins/secrets/initialAdminPassword中找到。如果不知道這個文件放哪里,可以運行以下命令找到JENKINS_HOME,然后再找到首次密碼文件

[root@localhost secrets]# ps -ef |grep jenkins

jenkins 11083 1 1 16:54 ? 00:00:26 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

5.選擇了安裝建議的插件,完成后就可以看到首頁了。

創建項目

工具準備

點擊系統管理->Global?Tool?Configuration,配置JDK Git和Maven。


JDK和GIT的配置
MAVEN的配置

備注:jdk8和git是事先在服務器中安裝完成的。

新建

點擊新建按鈕,填寫項目名稱并選擇maven項目,進入配置界面,并配置為下圖所示如下所示:


taskcheck的配置界面

說明:
1.在配置ssh方式git的服務器時,需要注意權限問題。我這里是先用組gituser下的xiemb用戶創建一個文件夾,然后運行以下命令,設置該目錄以及該目錄下的文件對于組gituser下的用戶都是rwx。

$mkdir TaskCheck.git

$chmod?g=rwx TaskCheck.git

$ su root

# setfacl?-m?d:g:gituser:rwx /newdata/TaskCheck.git

2.配置git用戶時,需要事前安裝SSH Credentials Plugin插件,并且獲取對應用戶的公鑰。

用戶xiemb的ssh公鑰

3.配置SonarQuebe Scanner,需要下載相關組件,并且需要配置好sonar服務器。

3.1jenkins插件下載:Sonargraph Integration Jenkins PluginSonargraph PluginSonarQube Scanner for Jenkins

3.2在sonar官網?下載安裝包,解壓后,配置$SONAR_HOME/conf/sonar.properties文件,我只是配置了數據庫,啟動服務 $SONAR_HOME/bin/linux-x86-64/sonar.sh start。

sonar.properties部分配置

3.3?訪問http://ip:9000?就會看到sonar的界面了,點擊登陸,輸入admin/admin后,進入配置,marketplace,安裝Chinese?pack。

安裝中文包

3.4到此,sonar的服務端算是搞掂了,然后回到taskcheck作業的配置界面,配置execute?sonarqube?scanner。PS:如果projectVersion從pom.xml獲取變成參數會更佳。

sonar配置

4..項目構建后部署到tomcat中,需要配置具有部署權限的tomcat?user。

tomcat-user.xml部分配置

最大的坑

由于TaskCheck的架構是Spring+Springmvc+mybatis+mysql,而mybatis的映射文件放在源碼某個包中,導致打包時沒有把映射文件*.xml放入相應的文件。

tomcat報錯

網上是有不少方法,但這個項目是配置在某個包下,而不是編譯路徑,導致我花費了不少的時間去嘗試,最后的解決方法也很簡單。

在項目的pom.xml配置resource

展示

項目構建內容
SonarQube掃描結果
訪問應用程序

寫在最后

由于本人也是剛接觸jenkins,如有錯漏,請指出,我會盡快修改過來。如有疑問,歡迎交流。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容