Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。 (以上介紹來源於百度百科)java
其實通俗來講,Jenkins就是一個自動化部署項目的工具,幫我省去重複的運維工做。git
部署環境須要的工具,安裝的資料網上都有不少,能夠自行安裝配置web
環境變量spring
Java的環境變量我沒配置,我安裝的jdk版本環境變量自動有了docker
jenkins安裝方式常見的有三種shell
1.在官網下載war包部署在tomcat中apache
2.經過docker部署瀏覽器
3.經過yum install jenkins 安裝tomcat
我選用的是第三種。安裝步驟以下安全
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum install jenkins
service jenkins start 啓動 service jenkins stop 中止 service jenkins restart 重啓
而後訪問http://${ip}/8080,能夠看到jenkins那個小老頭,根據自行配置安裝插件,其中密碼在這裏
vi /var/lib/jenkins/secrets/initialAdminPassword
記得在阿里雲上開放端口
我的建議,Jenkins第一次進入推薦安裝的插件就默認安裝就行,省的還須要後續本身安裝,固然,若是本身安裝的話須要Maven和Git插件。
由於SpringBoot是以jar的形式發佈自帶tomcat,因此不須要配置tomcat容器了。
新建項目,選擇構建自由風格的項目,給項目起個名字,而後點擊Ok。
這裏我用到了幾個參數,由於可能有時須要提早準備好參數在進行構建,以下圖:
用Git進行將項目Clone下來,配置本身的用戶密碼,Repository URL配置git地址(這裏提供的地址是在gitlab上隨意建立的SpringBoot項目,項目沒什麼特別)
這裏選擇執行Shell,內容以下:
mvn clean install -Dmaven.test.skip=true echo $spring_profile $jar_path $jar_name cd /usr/local/shell/ ./stop.sh $jar_name echo "Execute shell Finish" ./startup.sh $spring_profile $jar_path $jar_name $project_name
在上面執行的Shell裏面還用到了兩個Shell,分別是stop.sh,實質就是找到jar執行的pid,而後kill,具體內容以下:
jar_name=${1} echo "Stopping" ${jar_name} pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then echo "kill -9 的pid:" $pid kill -9 $pid fi
startup.sh內容以下,具體能夠根據狀況修改:
spring_profile=${1} jar_path=${2} jar_name=${3} project_name=${4} cd ${jar_path}/${project_name}/target/ echo ${jar_path}/${project_name}/target/ echo nohup java -jar ${jar_name} & BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &
以上兩個文件記得設置好權限,否則構建的時候會報錯。
碰到的小插曲,Jenkins內沒法使用mvn,報錯mvn:command not found,這裏的解決方式是添加軟連接,將mvn命令也指向/usr/bin/mvn,以下:
ln -s /usr//apache-maven-3.6.0/bin/mvn /usr/bin/mvn
點擊運行後,如圖所示,剛剛預配置的參數均可以看到並能夠修改,這裏咱們用默認配置好的就能夠。
構建成功後瀏覽器訪問項目地址,正常顯示
6.1 Jenkins全局安全配置
須要在Jenkins上配置容許匿名用戶訪問
6.2 GitLab配置
這裏的URL地址填寫Jenkins項目構建觸發器的地址帶上token,而後選擇觸發器(通常選擇push和merge就能夠了)
點擊測試返回201則成功。
而後查看Jenkins就會有一條構建記錄
若是失敗,我碰到的問題有下面幾個
1.地址路徑參數不對
2.Jenkins安全設置沒有勾選運行匿名訪問
整體過程坑其實仍是不少的,老是出現不一樣的問題,可是網上通常都有解決辦法,前人也是同樣踩過坑的,後面會把docker引進來。
大致結構