Jenkins環境搭建和部署項目的過程

安裝部署docker jenkins 環境

創建一個文件夾 用於存放jenkins相關配置

mkdir /Users/mengfanxiao/docker/jenkins

下載docker jenkins鏡像

docker pull jenkins/jenkins
當前版本:Jenkins 2.243

啓動鏡像

docker run -d -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true -v /Users/mengfanxiao/docker/jenkins:/var/jenkins_home jenkins/jenkins

訪問jenkins

http://localhost:8080/

PS : 如果一直在Please wait while Jenkins is getting ready to work...頁面,資源訪問過慢加載不出來

解決方法

找到/Users/mengfanxiao/docker/jenkins目錄下的
hudson.model.UpdateCenter.xml文件,
將https://updates.jenkins.io/update-center.json
替換爲http://mirror.xmission.com/jenkins/updates/update-center.json
然後重啓啓動docker jenkins

登陸賬號

輸入密碼

輸入密碼

啓動命令中有一個文件映射 將docker中的配置文件映射到本地電腦
即  -v /Users/mengfanxiao/docker/jenkins:/var/jenkins_home jenkins/jenkins
既然 docker jenkins已經啓動 那麼配置文件也從docker映射到本地一份了

由上面[輸入密碼]截圖可以看要去/var/jenkins_home/secrets/initialAdminPassword文件中找初始密碼
(發現截圖上的目錄少了一個jenkins)
那麼只需要從 本地文件 /Users/mengfanxiao/docker/jenkins/secrets/initialAdminPassword 即可

安裝插件

這裏選擇安裝推薦的插件

PS : 這裏等待時間太久 如何解決?

解決辦法 :

修改更新配置源

  • 找到/Users/mengfanxiao/docker/jenkins/updates/default.json

  • 把 "www.google.com” 改成 "http://www.baidu.com/"

  • 把 "updates.jenkins-ci.org/download" 替換成 "mirrors.tuna.tsinghua.edu.cn/jenkins"

快速更新的辦法

使用vim的命令

  • 替換所有插件下載的url

:1,$s/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g
  • 替換連接測試url

:1,$s/http:\/\/www.google.com/https:\/\/www.baidu.com/g

注意:進入vim先輸入:然後再粘貼上邊的:後邊的命令,注意不要寫兩個冒號!修改完成保存退出:wq

心理PS:速度卡卡的快啊(留下了幸福的眼淚)

創建用戶

創建好用戶之後 就可以進入到首頁了

檢查並修復插件

查看失敗插件

  • 打開系統管理頁面 如果有安裝失敗的插件 則會顯示(失敗插件名稱及原因)

  • 查看已安裝的插件

http://localhost:8080/pluginManager/installed 
報紅的則是安裝失敗的插件

  • 功能不全

假如 如果在創建任務的時候沒有[構建一個maven項目]選項 則需要安裝maven插件

如何安裝插件

以上面的功能不全-沒有[構建maven項目]爲例

  • 點開可選插件 輸入maven

http://localhost:8080/pluginManager/available

  • 安裝後的效果

重啓使得剛剛安裝的插件生效

如果插件有了改變 則已安裝插件頁面的最下面有一個重啓的提示,
重啓了之後 剛剛已安裝的插件就會生效

通過jenkins部署項目

創建一個任務

General配置

Git配置

git信息配置

git信息配置

訪問git的賬號配置

訪問git的賬號配置

指定分支的含義是 獲取指定git地址下面的指定分支進行代碼部署

build

這裏需要配置下maven

這裏需要配置下maven

clean package -U -Dmaven.test.skip=true
-U表示強制更新

Post Steps

在這一步之前的操作是 jenkins通過maven將指定的項目編譯打jar或war包或其他形式的
這一步是 訪問指定的服務器 在指定的路徑下面 執行指定的腳本 啓動jar或war或其他 
所以需要先配置下服務器: 系統管理-系統配置-SSH Server
並測試下是否可以連接

  • 源文件 表示當前項目編譯打包之後是jar包還是war包

  • 可執行文件

root@iZuf6heduaqlfxz2wj9zc3Z:~# cat /home/jenkins/vote-api/vote-api-test.sh
#!/bin/bash 
# 配置jdk環境
export JAVA_HOME=/usr/local/software/jdk1.8.0_141
export JAR_HOME=$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# 配置項目名稱
APP_NAME=vote-api.jar
#判斷進程是否存在 若存在 則kill
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0 
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running" 
fi
# 刪除上一次編譯打包後的文件
rm -rf /home/test-vote-api/*.jar
# 將jenkins打包編譯之後的文件複製到指定位置
cp -rf /home/jenkins/vote-api/target/*.jar /home/test-vote-api/${APP_NAME}
# 啓動項目
nohup java -jar  -Dspring.profiles.active=dev  /home/test-vote-api/${APP_NAME} -Xms256m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m  --server.port=8082 >/home/test-vote-api/logs/vote-api.log 2>&1 &
echo "程序已啓動..."
# 進程是否存在
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. pid is ${pid} "
else
echo "${APP_NAME} is not running."
fi
exit

注意點

  • 上述腳本中的文件夾先創建好

mkdir /home/test-vote-api/logs
  • PS:文件訪問權限問題

如果jenkins在配置server的時候訪問用戶不是root用戶
比如是jenkins用戶

查看文件的訪問權限 上面是當前用戶可以讀寫可執行、當前用戶所屬於用戶組可讀可寫可執行、其他用戶可讀可寫可執行

只有這樣 jenkins用戶纔可以訪問

如果不是這樣 則需要 chmod 777 /home/jenkins -R 設置下文件夾訪問權限

郵件通知項目部署情況

構建

後記

至此,已經說完了jenkins環境搭建過程和如何通過jenkins部署一個項目的過程,
我就不演示了構建的過程了 因爲我用的公司的服務器,擔心內存不夠,把公司運行的項目給搞停掉😂
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章