Jenkins+IIS+Bonobo.Git.Server 搭建適用dotnet開發者的小團隊的devops環境
前言:
1、在一個小團隊里面,可能我們既是開發(前端+后端)也是運維還是售前售后服務。我們樣樣都得會,但說實話,樣樣都不是很精!但是我們也夢,夢想著一切能像大廠那樣,開發是開發,運維是運維,各司其職。作為一個從后端開發一路走過來的我,今天也越俎代庖,來談一件運維的事:IIS環境下的dotnet core應用程序的自動部署。一則是為自己留一個備忘,二則是為和我們有相似環境的同仁提供一個借鑒于參考。不足之處勿噴!
2、Java開發的朋友們請滑走!玩k8s+docker的朋友們請滑走!
3、本篇將按照如下段落進行整理:
- 環境介紹
- 在本地Windoss Server 2022服務器上安裝Jenkins
- 在云端Windows Server 2022應用程序服務器上準備:IIS+Open SSH Server部署
- 一步一步帶你實現自動化部署一個.net core應用程到云端服務器
- 附加:如果私有化部署了nuget服務器,在Jenkins中如何處理
從此告別:編譯 > 打包 > 登錄服務器 > 上傳程序包 > 復制程序包 > 停止IIS站點 > 解壓程序包 > 開啟IIS站點 這樣一系列重復、低效、繁瑣的動作!!!!
一、環境介紹
1、在本地有2臺服務器:
- 服務器(10.10.18.3)部署與開發一樣的環境,并安裝Jenkins
- 服務器(10.10.18.4)本地的nuget服務 與 Bonobo.Git.Server服務
|
說明: (1)為什么會有本地的nuget服務:在長久的開發過程中團隊已經形成了一些固有的程序包,它大大提高了開發效率,但是它又不適合上傳到公共的nuget倉庫,所以便有了本地的nuget服務。 (2)Bonobo.Git.Server服務是團隊歷史以來都在使用的私有git倉庫,它已經沒有gitee等當代的git倉庫那么先進,但是團隊也沒有更換的勇氣,簡單設置一下也能夠和Jenkins配合著使用。 (3)以上兩款,都是開源的項目,拿來就可以本地部署,有興趣的朋友可以打開:BaGet——本地nuget服務 和 Bonobo.Git.Server本地的Git倉庫 |
2、云端有2臺服務器:IP地址分別是:1.1.1.1和2.2.2.2。在其上都部署IIS和Open SSH Server。
二、在本地的Windows Server 2022服務器上安裝Jenkins
Jenkins的安裝,網上相關的篇章已經太多了,此處不再贅述。隨便推薦一篇:Windows系統下Jenkins安裝配置【新手教學】_jenkins windows-CSDN博客
同時,在此服務器上,部署上與開發一樣的環境。
三、在云端的Windows Server 2022服務器上準本IIS+Open SSH Server
Windows Server上開啟IIS相關的文章也經太多了,此處不再贅述。隨便推薦一篇:Windows Server 2019 安裝IIS 服務 - 愛吃糖的寶寶 - 博客園 (cnblogs.com)
在Windows Server 2022上開啟Open SSH Server,可以參考這篇:windows server 開啟 openssh_windowsserver開啟ssh-CSDN博客
|
說明: (1)或許,你在其他文章中看到,IIS程序自動化部署,需要開啟 “Web Deploy組件”,但Jenkins+IIS的程序自動化部署,不需要開啟 “Web Deploy組件”。 (2)Open SSH Server是什么,為什么要開啟。說的直白一點,在WinServer 上開啟Open SSH Server,就可以讓Windows機器像Linux機器那樣,通過命令行鏈接并操作電腦。 (3)在Win Server上開啟Open SSH Server,一定要考慮安全。或許你可以通過防火墻策略,只讓你本地機器通過ssh鏈接等等。 |
四、一步一步帶你實現自動化部署一個.net core應用程到云端服務器
1、在Jenkins上安裝兩個必要插件:Publisher Over SSH、Generic Webhook Trigger。



2、在Jenkins中配置SSH主機(就是第三點配置好的云端服務器)
step-1

step-2

step-3


2、在vs 2022中創建一個asp.net core web項目(.net 8.0),并提交到本地git倉庫:https://10.10.18.4:8888/TestJenkins.git

3、在Jenkins中創建項目并配置
- 創建Jenkins項目

- 常規配置項

- 源代碼管理配置項

- 自動構建觸發器

將上面拼接的URL,按照下圖所示的方法使用:

上面這步操作,是確保你的代碼提交到Bonobo.Git.Server搭建的git倉庫時,能夠觸發Jenkins自動構建。
- 執行環境通用設置

- 構建步驟

|
說明:
|

|
說明:
|

|
說明:
|
- 到此,所有配置完成。點擊“Build Now”,開始構建,然后查看最終效果:

五、附加:如果你私有化部署了本地Nuget服務,Jenkins中如何處理
1、如果你使用了本地nuget服務,在Jenkins中執行dotnet publish -c Release發布命令時,極有可能不成功。這是,你需要dotnet nuget命令,添加您的本地nuget源。請參考文檔:https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-nuget-add-source
2、您可以在Jenkins的命令行輸入框中輸入以下命令
dotnet nuget list source——查看Jenkins環境下的nuget包源有哪些
dotnet nuget config paths——查看Jenkins環境下的nuget包源配置文件的路徑(我遇到的情況是:這個路徑和我們直接通過控制臺輸入dotnet命令使用的nuget包源配置文件的路徑不一致。)
dotnet nuget config get all——查看Jenkins環境下的nuget包源配置項有哪些

浙公網安備 33010602011771號