ASP.Net Core使用Jenkins配合pm2自動化部署專案

一叶、知秋發表於2024-11-04
一. 新建一個自由風格的軟體專案

二. General配置(引數化構建)

1. 用來選擇部署的伺服器(我這裡只新增了一個,如果需要新增多個,一行一個就可以了)

2. 選擇不同的環境變數

三、原始碼管理

1. 填寫Github專案地址,選擇Credential(Credential需要自己新建,根據自己情況新增即可)。

2. 在Branches to buid下邊填寫要拉取的遠端分支(如圖)

四、Buid Steps

1. 增加構建步驟-Send files or execute commands over SSH

(1)選擇Name之前,需要提前新增需要ssh的伺服器的主機資訊(當前使用windows伺服器演示),包括地址,使用者名稱,密碼,例如:

  在Dashboard-系統管理-系統配置-Publish over SSH-新增

  Name隨便填,能用來分辨即可,Hostname即ip地址,Username就是ssh的使用者名稱,如果ssh需要密碼,則再“高階”中勾選 "Use password authentication, or use a different key",然後填寫密碼。

最後,在右下角點選“Test Configuration”,如果透過,則繼續進行下一步。否則需要重複檢查您自己的配置直到透過。

 (2)繼續回到新增構建步驟,如下圖,Name選擇剛剛新增的ssh伺服器資訊,然後選擇“高階”,勾選Verbos output in console(從Jenkins控制檯輸出詳細步驟),勾選Label,Label則填寫引數化構建過程中的SSH_SERVER中的選項列表的選項對應(一個選項 對應一個ssh步驟模組)。

(3)Transfers配置

Exec command下邊填寫命令

d: && 
if not exist mt4-manager md mt4-manager &&
mkdir D:\\mt4-manager\\$MANAGER &&
cd "mt4-manager" &&
if not exist publish md publish &&
cd "d:\\mt4-manager\\publish" &&
if not exist $MANAGER md $MANAGER

釋義:傳送cmd命令

d: ->跳轉到D盤

    if not exist mt4-manager md mt4-manager -> 如果不存在mt4-manager資料夾則建立
    mkdir D:\\mt4-manager\\$MANAGER -> 建立動態名稱目錄($MANAGER對應引數化構建過程中的MANAGER對應的選項)
    cd "mt4-manager" -> 跳轉到mt4-manager目錄
後邊的命令同以上

“高階”選單中,Exec timeout修改為0,並且勾選Exec in pty。

2. 在同模組下,新增Transfer Set子模組

在Exec command下邊填寫以下命令:

pm2 delete "mt4-manager-api-$MANAGER"

3. 新增構建步驟-執行shell

輸入命令(複製Jenkins伺服器上的程式碼到ssh伺服器上對應的目錄):

scp -r ../mt4-manager-api mt4@192.168.0.130:d:\\mt4-manager\\$MANAGER

4. 再次新增構建步驟-Send files or execute commands over SSH

配置跟剛剛配置的ssh模組一樣,但是Exec command輸入為:

d: && 
cd "D:\mt4-manager\$MANAGER\manager-api-v2" &&
dotnet publish -c Release -o D:\mt4-manager\publish\$MANAGER &&
cd "D:\mt4-manager\publish\$MANAGER" &&
powershell -Command "(Get-Content appsettings.json -Raw) -replace 'devDemo','$MANAGER' | Set-Content appsettings.json" &&
pm2 start "manager-api-v2.exe" --name "manager-api-$MANAGER" &&
echo start success

別忘了“高階”選單中的配置

釋義:

進入d盤,進入manager-api-v2資料夾(專案根目錄),

釋出專案到指定資料夾

進入釋出後的資料夾專案根目錄

使用powershell命令,將appsettings.json中配置的環境變數值,由devDemo替換為動態引數值$MANAGER,對應引數化構建中的$MANAGER中的選項

使用pm2命令執行.net core程式,名稱為manager-api-(動態引數)

輸出 start success

到此,整個的配置過程就完成了。檢視結果

如有錯誤,請大佬指正!

相關文章