實現Jenkins docker部署,設置svn/maven/jdk/ssh,編寫自動部署工程腳本

折騰了好幾天,終於實現了自動化部署,廢話不多說,直接上乾貨:

先說環境,服務器操作系統是centos8,docker版本19.03.5,所有容器文件放到/data。

因爲要新建maven工程,需要提前安裝好jdk和maven。

第一步:docker search jenkins,找到評星最多的官方鏡像,pull後創建容器,沒想到無法啓動,無奈放棄,選用第二個jenkins/jenkins,此爲第一個坑:-(

第二步:創建容器:

新建目錄 /data/jenkins_home,然後

docker run -d -p 8080:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins

這裏自己挖了一個坑,把/data和/var搞反了,然後成功跳出。

/etc/localtime也是一個坑,實際上使用的是/etc/timezone, 造成後面的容器時間與服務器時間不一致,此坑未填,因爲已經安裝了一堆插件,否則後面還有重來。

docker ps -a 查看容器:

第三步:http://ip:8080, 開始安裝初始化,

cat /data/jenkins_home/secrets/initialAdminPassword,複製密碼後開始

插件安裝時不要安裝推薦插件,因爲:連jenkins官方服務器太慢了!

但可以先安裝一箇中文本地化插件Localization Support Plugin,否則後面改成中文界面比較麻煩!

粗魯的修改方法:

cd /data/jenkins_home/updates

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

或者在系統設置裏修改,但沒什麼卵用,速度變化不大。

第四步:安裝插件

Folders,SSH,Subversion,maven插件都是必須的,遺漏也沒關係,使用時會有文檔提示你安裝的。

安裝後如果沒有問題,這裏不應該有下圖中的紅色圖標: 

 

安裝Credentials插件時,我降低了一下版本到2.2.0,否則會有衝突,不是所有插件都需要升級到最高版本。

第五步:進入系統管理-全局工具配置:

配置jdk和maven路徑,jdk路徑需要到容器裏用$JAVA_HOME查看。

進入系統管理-系統配置-全局屬性,新增SSH remote hosts,工程運行腳本時會用到。

第六步:新建一個maven工程,實現Springboot項目自動部署

這個網上的文章很多,無非就是設置一下svn地址賬戶密碼,第一次構建時時間長一點,多等一會。麻煩的地方在於通過ssh遠程執行腳本。在Post Steps步驟中選擇Run only if build succeeds,添加

腳本內容:

jarfilename="iqms_test.jar"
pids=`ps -ef | grep $jarfilename | grep -v grep | awk '{print $2}'`
for pid in ${arr[@]}
  do
  exe_str=`kill -9 $pid`
  echo ${exe_str}":"${pid}" is killed."
  done
scp -P 9022 root@ip:/data/jenkins_home/workspace/iqms-be-1/iqms-be-1/target/iqms.jar /iqms_beta/iqms_test.jar
/usr/bin/java -jar /iqms_beta/iqms_test.jar
echo "...end..."

第七步:開始構建吧,一般情況下,第一次不可能成功的,我搞了六次,祝大家順利!

 

另外ssh需要配置免密碼登錄,注意是從jenkins服務器登錄到被部署的服務器上運行,所以要在jenkins服務器上生成rsa密鑰,做複製到被部署的服務器上。但我還是碰到一個問題,ssh無法用新建的用戶名登錄到被部署的服務器,命令行可以,在jenkins裏測試怎麼都不行,難道是密碼太簡單了?還是加密方式不一致?期待大咖幫我解決一下,先謝謝了!

發佈了53 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章