前言
在測試行業打滾了四年了,還沒有接觸過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。
備注:jdk8和git是事先在服務器中安裝完成的。
新建
點擊新建按鈕,填寫項目名稱并選擇maven項目,進入配置界面,并配置為下圖所示如下所示:
說明:
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插件,并且獲取對應用戶的公鑰。
3.配置SonarQuebe Scanner,需要下載相關組件,并且需要配置好sonar服務器。
3.1jenkins插件下載:Sonargraph Integration Jenkins Plugin、Sonargraph Plugin和SonarQube Scanner for Jenkins。
3.2在sonar官網?下載安裝包,解壓后,配置$SONAR_HOME/conf/sonar.properties文件,我只是配置了數據庫,啟動服務 $SONAR_HOME/bin/linux-x86-64/sonar.sh start。
3.3?訪問http://ip:9000?就會看到sonar的界面了,點擊登陸,輸入admin/admin后,進入配置,marketplace,安裝Chinese?pack。
3.4到此,sonar的服務端算是搞掂了,然后回到taskcheck作業的配置界面,配置execute?sonarqube?scanner。PS:如果projectVersion從pom.xml獲取變成參數會更佳。
4..項目構建后部署到tomcat中,需要配置具有部署權限的tomcat?user。
最大的坑
由于TaskCheck的架構是Spring+Springmvc+mybatis+mysql,而mybatis的映射文件放在源碼某個包中,導致打包時沒有把映射文件*.xml放入相應的文件。
網上是有不少方法,但這個項目是配置在某個包下,而不是編譯路徑,導致我花費了不少的時間去嘗試,最后的解決方法也很簡單。
展示
寫在最后
由于本人也是剛接觸jenkins,如有錯漏,請指出,我會盡快修改過來。如有疑問,歡迎交流。