使用 Visual Studio Team Services 和 IIS 创建持续集成管道
若要將應用程序開發的生成、測試和部署階段自動化,可以使用持續集成和部署 (CI/CD) 管道。 本教程介紹如何在 Azure 中使用 Visual Studio Team Services 和 Windows 虛擬機 (VM) 創建一個運行 IIS 的 CI/CD 管道。 你將學習如何執行以下操作:
- 將 ASP.NET Web 應用程序發布到 Team Services 項目
- 創建由代碼提交觸發的生成定義
- 在 Azure 中的虛擬機上創建和配置 IIS
- 將 IIS 實例添加到 Team Services 中的部署組
- 創建發布定義,用于將新的 Web 部署包發布到 IIS
- 測試 CI/CD 管道
本教程需要 Azure PowerShell 模塊 3.6 或更高版本。 運行?Get-Module -ListAvailable AzureRM?即可查找版本。 如果需要進行升級,請參閱?Install Azure PowerShell module(安裝 Azure PowerShell 模塊)。
在 Team Services 中創建項目
使用 Visual Studio Team Services 可以輕松進行協作和開發,而無需維護本地代碼管理解決方案。 Team Services 提供云代碼測試、生成和應用程序見解信息。 可以選擇最適合用于代碼開發的版本控制存儲庫和 IDE。 對于本教程,可以使用免費帳戶來創建基本的 ASP.NET Web 應用和 CI/CD 管道。 如果還沒有 Team Services 帳戶,請創建一個。
若要管理代碼提交過程、生成定義及發布定義,請按如下所示在 Team Services 中創建一個項目:
創建 ASP.NET Web 應用程序
上一步驟已在 Team Services 中創建一個項目。 最后一個步驟是在 Visual Studio 中打開新項目。 可在“團隊資源管理器”窗口中管理代碼提交。 創建新項目的本地副本,然后通過模板創建 ASP.NET Web 應用程序,如下所示:
選擇“克隆”,創建 Team Services 項目的本地 git 存儲庫。
在“解決方案”下面,選擇“新建”。
選擇“Web”模板,然后選擇“ASP.NET Web 應用程序”模板。
在“團隊資源管理器”窗口中選擇“更改”。
在提交文本框中輸入一條消息,例如“初始提交”。 從下拉菜單中選擇“全部提交并同步”。
創建生成定義
在 Team Services 中,可以使用生成定義來概述如何生成應用程序。 本教程將創建一個基本的定義,它采用我們的源代碼,生成解決方案,然后創建可用于在 IIS 服務器上運行 Web 應用的 Web 部署包。
保留所有默認任務值。 在“獲取源”下面,確保已選擇“myWebApp”存儲庫和“master”分支。
在“觸發器”選項卡上,將“啟用此觸發器”對應的滑塊移動到“已啟用”。
監視生成在托管代理上的計劃過程,然后開始生成。 輸出類似于以下示例:
創建虛擬機
若要提供一個平臺來運行 ASP.NET Web 應用,需要一個運行 IIS 的 Windows 虛擬機。 提交代碼和觸發生成時,Team Services 使用代理與 IIS 實例交互。
使用此腳本示例創建 Windows Server 2016 VM。 該腳本需要花費幾分鐘來運行和創建 VM。 創建 VM 后,請使用?Add-AzureRmNetworkSecurityRuleConfig?為 Web 流量打開端口 80,如下所示:
PowerShell復制 Get-AzureRmNetworkSecurityGroup ` -ResourceGroupName $resourceGroup ` -Name "myNetworkSecurityGroup" | ` Add-AzureRmNetworkSecurityRuleConfig ` -Name "myNetworkSecurityGroupRuleWeb" ` -Protocol "Tcp" ` -Direction "Inbound" ` -Priority "1001" ` -SourceAddressPrefix "*" ` -SourcePortRange "*" ` -DestinationAddressPrefix "*" ` -DestinationPortRange "80" ` -Access "Allow" | ` Set-AzureRmNetworkSecurityGroup若要連接到 VM,請使用?Get-AzureRmPublicIpAddress?獲取公共 IP 地址,如下所示:
PowerShell復制 Get-AzureRmPublicIpAddress -ResourceGroupName $resourceGroup | Select IpAddress與 VM 建立遠程桌面會話:
cmd復制 mstsc /v:<publicIpAddress>在 VM 上,打開“管理員 PowerShell”命令提示符。 按如下所示安裝 IIS 和所需的 .NET 功能:
PowerShell復制 Install-WindowsFeature Web-Server,Web-Asp-Net45,NET-Framework-Features創建部署組
若要將 Web 部署包推送到 IIS 服務器,請在 Team Services 中定義一個部署組。 將代碼提交到 Team Services 以及完成生成時,可在此組中指定哪些服務器要用作新生成的目標。
將 IIS VM 添加到部署組
創建部署組后,請將每個 IIS 實例添加到該組。 Team Services 將生成一個腳本,用于在 VM 上下載并配置一個代理,以便接收新的 Web 部署包,然后將這些包應用到 IIS。
在“生成和發布”菜單的“部署組”頁中,打開?myIIS?部署組。 在“計算機”選項卡上,檢查你的 VM 是否已列出。
創建發布定義
若要發布生成,請在 Team Services 中創建發布定義。 成功生成應用程序時,會自動觸發此定義。 選擇要將 Web 部署包推送到的部署組,然后定義相應的 IIS 設置。
選擇“+ 添加任務”旁邊的下拉列表框,然后選擇“添加部署組階段”。
選擇“IIS Web 應用部署(預覽)”旁邊的“添加”,然后選擇“關閉”。
選擇“在部署組上運行”父任務。
在“計算機標記”框中,選擇“添加”,然后選擇“web”標記。
選擇“部署: IIS Web 應用部署”任務以配置 IIS 實例設置,如下所示:
創建版本并發布
現在,可將 Web 部署包推送為新版本。 此步驟將與構成部署組的每個實例上的代理通信,推送 Web 部署包,然后將 IIS 配置為運行更新的 Web 應用程序。
打開“日志”選項卡查看發布進度。
發布完成后,請打開 Web 瀏覽器并輸入 VM 的公共 IIP 地址。 ASP.NET Web 應用程序正在運行。
測試整個 CI/CD 管道
在 IIS 上運行 Web 應用程序后,請嘗試測試整個 CI/CD 管道。 在 Visual Studio 中進行更改并提交代碼后,將觸發生成,然后觸發將更新的 Web 部署包發布到 IIS 的過程:
編輯第 6 行,如下所示:
<h1>ASP.NET with VSTS and CI/CD!</h1>
保存文件。
- 選擇“生成和發布”,然后選擇“生成”。
- 選擇生成定義,然后選擇“已排隊和正在運行”生成來監視生成進度。
- 選擇“生成和發布”,然后選擇“發布”查看已推送到 IIS VM 的 Web 部署包。
- 選擇“刷新”圖標來更新狀態。 如果“環境”列顯示綠色的復選標記,則表示已成功將發布部署到 IIS。
若要查看已應用的更改,請在瀏覽器中刷新 IIS 網站。
后續步驟
本教程已在 Team Services 中創建一個 ASP.NET Web 應用程序,并配置了生成和發布定義,以便每次提交代碼時將新的 Web 部署包部署到 IIS。 你已了解如何:
- 將 ASP.NET Web 應用程序發布到 Team Services 項目
- 創建由代碼提交觸發的生成定義
- 在 Azure 中的虛擬機上創建和配置 IIS
- 將 IIS 實例添加到 Team Services 中的部署組
- 創建發布定義,用于將新的 Web 部署包發布到 IIS
- 測試 CI/CD 管道
轉到下一教程,了解如何使用 SSL 證書保護 Web 服務器。
使用 SSL 保護 Web 服務器
轉載于:https://www.cnblogs.com/zangdalei/p/7873074.html
總結
以上是生活随笔為你收集整理的使用 Visual Studio Team Services 和 IIS 创建持续集成管道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用CRT查找内存泄漏
- 下一篇: SourceTree 基本介绍