window下使用Jenkins來做自動化部署的教程圖解
今天我們來說一下,如何使用Jenkins+powershell腳本,將我們的.NET CORE的腳本部署到對應的服務器上.
這里我們使用的源碼管理工具是TFS.雖然源碼管理器比較老舊,但是原理都差不多.
1.安裝Jre,因為我們的Jenkins是基于java開發(fā)的,所以需要先在服務器上安裝java的運行時環(huán)境
這個安裝過程比較簡單,百度下載JRE,然后安裝,暫且不表.
下載地址:https://www.java.com/en/download/manual.jsp

2.下載并安裝Jenkins,這里服務器是Windows的,所以最好下載Windows版本的,安裝好以后直接就以Windows服務的形式運行了.
這個安裝過程也是非常的簡單,網(wǎng)上教程很多.

3.安裝好Jenkins以后,根據(jù)需要我們安裝權(quán)限插件,給不用的賬號配置不通過的權(quán)限,(此步驟可選)
具體可參看此文章,說的很詳細:
http://www.dhdzp.com/article/161947.htm
4.最關鍵的一步來了,就是如何使用Jenkins來自動部署我們的代碼.
這里主要分以下幾個小點,下面我會貼出詳細的代碼.
1)獲取TFS中的最新源碼,這里我并沒有通過Jenkins去獲取代碼,而是通過tf命令去拉取代碼的.
這樣的好處就是,所有的Jenkins任務的源代碼,我都可以使用同一份,而不用每個任務單獨去拉取一份代碼.
2)拉取到代碼以后,自然就是通過命令來編譯我們的代碼,熟悉.net的朋友們應該都知道,無非就那幾個命令了
3)代碼發(fā)布出來以后,自然就是要將代碼copy到我們的站點或者Windows服務下面去.
這一步也很簡單,無非就是通過命令停止iis站點和應用程序池;copy代碼;重啟啟動對應的站點即可
一套下來,打完收工.
下面貼出幾個關鍵步驟的截圖:
1.Jenkins創(chuàng)建自由風格的任務

2.其他什么都可以不選,只要我們使用powershell腳本,需要Jenkins支持powershell也需要安裝插件

3.點擊保存,一套搞定.點擊build now即可

ps:下面給出詳細的powershell腳本,非常簡單這里就不詳述了,大家一看代碼就明白了
net stop Test1Job
C:\Windows\System32\inetsrv\appcmd.exe stop site Test1.test.com
C:\Windows\System32\inetsrv\appcmd.exe stop site Test1.api.test.com
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"test1.test.com"
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"Test1.api.test.com"
dir "$PSScriptRoot\lib" -Filter "*.ps1" | foreach {
. $_.fullName
Write-Host "Import $($_.fullName)"
}
#1.獲取源碼
D:\test\tools\get_tfs.bat
#2.編譯源碼
dotnet build D:\test\Source\MTools\Source-Promotion\Test.API.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore
echo API OK
dotnet build D:\test\Source\MTools\Source-Promotion\Test.Web.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore
echo WEB OK
dotnet build D:\test\Source\MTools\Source-Promotion\Test.Job.WindowsService.csproj -nowarn:msb3202,nu1503,cs1591 #--no-restore -v q
echo job OK
Sleep 20
#3.發(fā)布
CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.API\bin\Debug\netcoreapp2.1 D:\Test\Test1\api
CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\bin\Debug\netcoreapp2.1 D:\Test\Test1\web
CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Web\wwwroot D:\Test\Test1\web\wwwroot
CCopy D:\test\Source\MTools\Test.\Source-Promotion\Test.Job.WindowsService\bin\Debug\netcoreapp2.1\win-x64 D:\Test\Test1\job
net start Test1Job
C:\Windows\System32\inetsrv\appcmd.exe start site Test1.test.com
C:\Windows\System32\inetsrv\appcmd.exe start site Test1.api.test.com
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"test1.test.com"
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"Test1.api.test.com"
Write-Host "success"
Get-Date
function CCopy($folder_a_path,$folder_b_path)
{
if(!(test-path $folder_b_path))
{
md $folder_b_path
}
#遍歷源文件夾下所有文件
$folders_a = gci $folder_a_path -Recurse
foreach ($folder_a in $folders_a)
{
if($folder_a.fullname -like "*appsettings.json*")
{
continue
}
#通過替換的方式,取目標文件的全路徑名稱
$b = $folder_a.fullname.replace($folder_a_path,$folder_b_path)
#判斷目標文件是否存在,如果存在則先判斷新舊
If (test-path $b)
{
#判斷目標是否為目錄,如果是目錄則跳過,如果不跳過,則會創(chuàng)建一級空目錄
If (!((gi $b).PSIsContainer))
{
#判斷目標文件、源文件的新舊情況,如果目標已存在文件的修改時間早于源文件,則重新拷貝覆蓋
If ((gci $b).lastwritetime -lt $folder_a.lastwritetime)
{
copy-item $folder_a.fullname $b -force
}
}
}
#如果目標文件不存在,則直接拷貝
Else
{
copy-item $folder_a.fullname $b
}
}
}
一套打完手工,大家有什么意見和建議,請?zhí)岢鰚
后續(xù)將進一步寫通過powershell將程序發(fā)布到其他服務器上,以及發(fā)布完成以后,郵件告知結(jié)果
待續(xù)...
總結(jié)
以上所述是小編給大家介紹的window下使用Jenkins來做自動化部署的教程圖解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
window下homestead開發(fā)環(huán)境安裝詳細教程
homestead就是laravel官方打包給我們使用的環(huán)境,本文給大家介紹的非常詳細,包括資源準備工作都給大家列出來了,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-10-10
關于網(wǎng)站應用程序池的帳號密碼更改及其影響的實例分析
這個標題看起來有點繞,但其實是一個常見的問題,而且很多朋友對此的理解都不深。我這里用一個例子來解釋一下2011-12-12
WIN10安裝有多種數(shù)據(jù)庫時如何防止電腦卡慢問題
這篇文章主要介紹了WIN10安裝有多種數(shù)據(jù)庫時如何防止電腦卡慢問題,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
Win Server 2019遠程桌面服務部署的實現(xiàn)步驟
有時候使用遠程桌面連接到WINDOWS服務器,本文主要介紹了Win Server 2019遠程桌面服務部署的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2024-04-04
Windows Server 2019遠程控制的配置與管理方法
在企業(yè)中服務器一般被寄存在專門的IDC機房中,服務器需要定期維護,所以這時候就需要遠程控制,本文就介紹Windows Server 2019遠程控制的配置與管理方法,具有一定的參考價值,感興趣的可以了解一下2022-04-04
IIS6架設網(wǎng)站過程常見問題解決方法總結(jié)
很多朋友在用IIS6架網(wǎng)站的時候遇到不少問題,而這些問題有些在過去的IIS5里面就遇到過,有些是新出來的,俺忙活了一下午,做了很多次試驗,結(jié)合以前的排錯經(jīng)驗,做出了這個總結(jié),希望能給大家?guī)蜕厦Α?/div> 2008-09-09
IIS服務器禁止某個IP或IP地址范圍訪問網(wǎng)站的方法
公司網(wǎng)站的最近一直遇到同行的惡意刷下載導致流量暴漲,嚴重影響正常用戶的訪問,因此不得不將這些ip地址拉黑了,網(wǎng)站環(huán)境是IIS,本文就針對該問題來講講IIS服務器禁止某個IP或IP地址范圍訪問網(wǎng)站的方法2024-09-09最新評論

