Jenkins打包推到遠端伺服器部署以及遇到的問題

2020-10-25 07:01:09
  • 官網下載WAR包
  • 設定java環境,啟動 : java -jar jenkins.war
  • 登入首頁 按照提示查詢密碼登入,設定使用者名稱。
  • 下一步提示下載外掛,這時候先別點下載。更換jenkins 映象地址
#關閉jenkins程序,jenkins目錄 war 啟動 目錄:/root/.jenkins/updates/default.json

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.cloud.tencent.com\/jenkins/g' $JENKINS_HOME/updates/default.json

# 如果上邊的命令updates.jenkins-ci.org 找不到, 換成 updates.jenkins.io
然後啟動重新進入頁面,下載外掛,速度起飛
  • 設定各種環境,首頁 Manage Jenkins => Global Tool Configuration 需要執行什麼設定什麼,這個網上搜一大堆

  • 我這裡使用的目的是實現本地打包,推播到遠端伺服器釋出執行。安裝遠端釋出外掛
    在這裡插入圖片描述

  • 設定遠端伺服器連線資訊 Manage Jenkins =》System Configuration,兩種方式(密碼或者金鑰)

    賬戶密碼連線

在這裡插入圖片描述

金鑰連線

在這裡插入圖片描述

金鑰生成方式,在遠端目標伺服器上生成
輸入命令: ssh-keygen ,按照提示一直Enter鍵到底,按到如圖所示為止

在這裡插入圖片描述

1:在 .ssh 目錄下會生成私鑰和公鑰
2:複製公鑰改名authorized_keys 命令:cp id_rsa.pub authorized_keys
3:把私鑰內容複製填寫到上圖 Key 的文字方塊裡,測試 success搞定!
  • 新建任務或者先建立試圖(右箭頭+號)再建立item,相當於分組,預設建立就在ALL裡面。

在這裡插入圖片描述

建立任務,構建一個Maven專案

在這裡插入圖片描述

設定GIT連線地址,使用者名稱資訊。

在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

下圖是遠端推播關鍵步驟 注意詳細看

name:就是前幾步設定的ssh 那個自定義的名字,下拉框,可以看得到
Source files: 原始檔,這個路徑,舉個例子吧:比如我這個jar 在jenkins的工作空間位置是:.jenkins/workspace/test-dt-service-member/dt-member/dt-member-service/target/dt-member-service-1.0.jar,這裡這個地址填寫:dt-member/dt-member-service/target/*.jar
Remove prefix:上傳到目標伺服器時,需要移除jar包之前的路徑,上邊source file寫的是dt-member/dt-member-service/target/*.jar,這裡移除字首就是dt-member/dt-member-service/target
Remote directory:上傳到目標伺服器的那個目錄下,之前ssh設定資訊的是/data, 這裡如果寫個test,那麼檔案就會上傳到目標伺服器的 /data/test 下
Exec command: 填寫執行的腳步命令

在這裡插入圖片描述

以上資訊設定好,直接build 測試一下

可能會出現的問題:

1:Transfers 0 file ,檢查上邊提到的幾個關於檔案路徑的問題
2:在執行指令碼的過程中 jenkins 程序不會中斷,一直打log 紀錄檔,把上圖的高階設定開啟,把下邊選項勾上

在這裡插入圖片描述

3:Jenkins 在構建過程中,如果指令碼裡繁衍出來其他程序,Jenkins在指令碼執行完會殺掉所有程序.比如 我執行一個 sh start.sh ,這個指令碼裡有一行 java - jar ***.jar 的命令用來啟動專案 .這個時候你會發現Jenkins 已經執行完但是專案沒啟動成功. 只需要在啟動指令碼上加 nohup 就可以了 nohup sh start.sh

jenkins執行指令碼不退出,參考這個大佬