Azure DevOps Server |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
使用本文中的步驟來設定 Azure DevOps Server 與 Azure SQL 資料庫。 與使用本地部署 SQL Server 相比,這種拓撲需要更多步驟。
先決條件
| 類別 | 需求 |
|---|---|
| Azure DevOps Server 版本 | Azure SQL 資料庫 只能與 Azure DevOps Server 2019 和更新版本搭配使用。 |
| 安裝環境 | 安裝在 Azure VM 上的 Azure DevOps Server。 |
| 驗證 | 虛擬機 (VM) 已啟用系統受控識別,可用來向 Azure SQL 資料庫進行驗證。 |
| 網域成員資格 | VM 已加入網域,但未加入工作組。 |
| 資料庫類型 | Azure SQL 資料庫是單一資料庫。 Azure DevOps Server 2022 和更新版本支援受控實例和彈性集區。 |
| 防火牆規則 | Azure SQL Database 防火牆規則允許來自裝載 Azure DevOps Server 之 IP 位址或子網的輸入連線。 若要這樣做,請移至:Azure 入口網站>Azure SQL Database>設定>防火牆和虛擬網路> 新增規則,以允許從 Azure DevOps Server 的公用 IP 位址或子網存取。 |
| 工具 | - Azure SQL Database 已在 Azure 中部署並可供存取。 伺服器名稱、資料庫名稱和驗證方法的記錄。 - 在內部部署環境中執行的 Azure DevOps Server 2022。 - SSMS 安裝在安裝 Azure DevOps Server 的相同電腦上。 |
支援所有一般用途和進階 SKU,以及標準 SKU S3 和更新版本。 不過,不支援基本 SKU 和標準 SKU S2。
使用 Azure SQL Database 的 Azure DevOps Server 組態不支援舊版 SQL Server Reporting Services 與 SQL Server Analysis Services 報告功能。 相反地,您可以使用 Azure DevOps Analytics 進行報告和分析。
Azure SQL 資料庫 不支援加密的預存程式。
設定 Azure SQL Database
在您的虛擬機上設定受控識別。 我們目前僅支持系統管理的身分識別。
您可以使用所有標準機制來執行組態,包括:
若要設定新的 Azure DevOps Server 實例,請建立兩個 Azure SQL 資料庫:
- AzureDevOps_設定
- AzureDevOps_DefaultCollection
為您的 Azure SQL Database 伺服器設定 Microsoft Entra ID 驗證 。 讓自己成為伺服器上的 Microsoft Entra 系統管理員。 您需要資料庫的系統管理員許可權,才能完成其餘的設定步驟。 您稍後可以變更此許可權。
一。 在主資料庫上執行下列 T-SQL 命令。 將 VMName 替換為您要新增到資料庫的虛擬機器的受控識別名稱。
CREATE USER [VMName] FROM EXTERNAL PROVIDER ALTER ROLE [dbmanager] ADD MEMBER [VMName]b。 在組態和所有集合資料庫上執行下列 T-SQL 命令:
CREATE USER [VMName] FROM EXTERNAL PROVIDER ALTER ROLE [db_owner] ADD MEMBER [VMName] ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo您的資料庫現在可讓您的 VM 透過受控識別進行通訊。
注意
如果您對 Azure VM 進行修改,例如還原快照集或重新命名 VM,以還原連線:
- 從主資料庫和所有 Azure DevOps 資料庫移除 [VMName] 使用者。 如果 [VMName] 擁有資料庫物件,您可能需要 將其擁有者變更 為其他使用者,例如 DBO,然後在下一個步驟之後返回。
- 使用目前的 [VMName] 重新執行先前所述的 SQL 查詢,即使它未變更也一樣。
- 重新啟動 Azure DevOps Server 的服務。
設定 Azure DevOps Server
返回 Azure DevOps Server 組態精靈。 如果您設定新的實例,請選取 [這是新的 Azure DevOps Server 部署]。 如果您升級或移轉並在資料庫中有現有的數據,請選取 [我有現有的資料庫可供此 Azure DevOps Server 部署使用]。
當您進入組態精靈中的 [資料庫] 頁面時,請指定 Azure SQL 資料庫 伺服器實例。 一般而言,伺服器實例的格式 為 SQLInstanceName.database.windows.net。
您現在有在 Azure SQL 資料庫 上執行的 Azure DevOps Server 實例。
從內部部署 SSMS 連線到 Azure SQL 資料庫
請執行下列步驟,從內部部署 SSMS 連線到 Azure SQL 資料庫:
使用 SQL Server Management Studio (SSMS) 從運行於私人端點所在之相同虛擬網路的 VM 將 SQL 導出至 Blob 儲存體或檔案共用。
您可以使用 SQL Server Management Studio 匯出數據層應用程式精靈,將 Azure SQL 資料庫導出至 .bacpac 檔案。 您可以將 .bacpac 檔案儲存在 Azure Blob 記憶體或檔案共用中。
從 SSMS>中,以滑鼠右鍵單擊邏輯 SQL Server 上的 SQL Database,在>工作中選擇匯出資料層應用程式 精靈。
選取 下一步。
選取要儲存 BACPAC 檔案的位置。
選取 [關閉]。
DAC 套件位於這裡:C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages。
從 Azure DevOps Server 2022 連線到 Azure SQL Database
從 Azure DevOps Server 2022(內部部署)連線至 Azure SQL Database 涉及設定存取、確保連線通暢,以及使用適當的憑證。 請執行下列步驟,從 Azure DevOps Server 2022 連線 Azure SQL Database。
連線到 Azure SQL Database
取得 Azure SQL Database 連線詳細數據:
- 伺服器名稱:
<your-server-name>.database.windows.net - 資料庫名稱:
<your-database-name> - 驗證方法:SQL Server 驗證(使用者名稱/密碼)或Microsoft Entra ID 驗證。
- 伺服器名稱:
使用 SQL Server Management Studio (SSMS) 連線: 。 在安裝 Azure DevOps Server 的電腦上開啟 SQL Server Management Studio。 b。 連線到 Azure SQL Database:c. 啟動SSMS。 d。 在 [連線到伺服器] 視窗中:
- 輸入伺服器名稱:
<your-server-name>.database.windows.net - 選擇 [驗證:SQL Server 驗證]。
- 輸入您的使用者名稱和密碼。
- 選取 [Connect]。 連線之後,Azure SQL Database 會列在 SSMS 中的 [物件總管] 底下。
- 輸入伺服器名稱:
測試連線能力: 在 SSMS 中執行查詢或命令:
SELECT @@VERSION;此查詢會傳回 Azure SQL Database 的 SQL Server 版本,確認連線成功。
在 Azure DevOps Server 中使用連線: 驗證 SSMS 的連線之後,您可以在 Azure DevOps Server 內針對各種工作使用此連線,例如:
- 自動化部署:在 Azure DevOps Server 中設定發行管線以部署資料庫變更。
- 數據遷移:使用與 Azure DevOps Server 整合的 SQL 腳本或數據工具。
- 持續整合:將資料庫變更整合到 CI/CD 管線中。
提示
- 安全: 考慮使用 Microsoft Entra 識別碼,以取得更安全的存取權。
- 管理認證: 安全地儲存認證,並避免在腳本或組態中硬式編碼認證。
- 監視器: 監視資料庫連線和使用方式,以確保安全性和效能。
從內部部署的 Azure DevOps Server 2022 連接至 Azure SQL Database,以簡化資料庫管理並整合到您的開發和部署流程中。 根據貴組織的原則和需求調整組態和安全性措施。
在 Azure DevOps Server 2022 中使用您的 Azure SQL Database 連線
準備 Azure DevOps Server:
。 請確定您已在內部部署環境中安裝及設定 Azure DevOps Server 2022。</
b. 要存取 Azure DevOps Server,必須具備建立和管理管線的適當許可權。設定 Azure DevOps 專案和存放庫(如果尚未完成):
。 建立新的或使用現有的 Azure DevOps 專案。
b. 設定 Git 或 TFVC 存放庫來儲存您的管線定義和腳本。建立管線:
a. 移至您的 Azure DevOps 專案。
b. 選取 管線>管線>新增管線。
c. 根據您的需求選取適當的管線範本。 針對 Azure SQL Database,您可以從空白作業開始,或選擇符合部署需求的範本(例如 Azure Pipeline)。
d. 編輯管線 YAML 檔案,或使用傳統編輯器來定義管線階段和工作。新增工作以部署至 Azure SQL Database:
任務:SQL Server 資料庫變更部署: 使用
SqlAzureDacpacDeployment任務將變更部署至 Azure SQL Database。 範例 YAML 代碼段:steps: - task: SqlAzureDacpacDeployment@1 inputs: azureSubscription: 'YourServiceConnectionName' # Use your Azure SQL Database service connection serverName: '<your-server-name>.database.windows.net' databaseName: '<your-database-name>' deployType: 'DacpacTask' authenticationType: 'server' sqlUsername: '$(sqlUsername)' sqlPassword: '$(sqlPassword)'以適當的值或變數取代
<your-server-name>、<your-database-name>、$(sqlUsername)和$(sqlPassword)。工作:Azure SQL 查詢: 使用
AzureSqlQuery工作對 Azure SQL Database 執行 SQL 查詢。 範例 YAML 代碼段:steps: - task: AzureSqlQuery@1 inputs: azureSubscription: 'YourServiceConnectionName' # Use your Azure SQL Database service connection serverName: '<your-server-name>.database.windows.net' databaseName: '<your-database-name>' sqlUsername: '$(sqlUsername)' sqlPassword: '$(sqlPassword)' sqlQuery: 'SELECT * FROM TableName'
安全地管理認證: 使用 Azure DevOps 變數或 Azure Key Vault 整合來管理 SQL Server 認證等敏感性資訊(
sqlUsername和sqlPassword)。觸發並運行管道:
- 儲存並提交管線變更。
- 根據部署策略手動觸發管道或設定觸發條件(例如,在程式碼提交、排程上)。
監視流程執行:
- 監視 Azure DevOps 中的管線執行,以確保 Azure SQL Database 的部署成功。
- 檢查記錄和輸出,以解決部署期間的任何問題。
提示
- 與發行管線整合: 整合組建管線與發行管線,以取得更複雜的部署案例和核准。
- 進行累加資料庫變更: 使用 SQL Server Data Tools (SSDT) 之類的工具或移轉來管理資料庫架構的累加變更。
- 使用版本控制: 在版本控制下保留 SQL 腳本和資料庫變更,以追蹤變更並確保重現性。
根據您的特定部署需求和組織需求調整組態和工作。
建立 SQL Server 備份
使用 Azure DevOps Server 管理控制台建立 Azure DevOps Server 2022 的 SQL Server 備份牽涉到設定備份設定和排程定期備份。 執行下列步驟來建立 SQL Server 備份。
備份的必要條件
| 類別 | 需求 |
|---|---|
| 訪問 | 管理員 存取權限到 Azure DevOps Server 安裝所在的伺服器。 |
| 權限 | 設定備份和存取 SQL Server Management Studio 的許可權。 |
建立備份
在安裝 Azure DevOps Server 的伺服器上啟動 Azure DevOps Server 管理控制台,然後選取 [應用層>排程備份>建立排程備份。
輸入網路備份路徑,然後選取 [[下一步]。
請選擇任何所需的電子郵件警示,然後選擇 下一步。
根據您的需求選擇備份排程,然後選取 [下一步]。
確認組態設定,然後選取 驗證。
備份精靈會驗證備份路徑是否存在,而且是網路路徑。
錯誤排除
如果準備檢查失敗,請參閱下列資訊以獲得故障排除的協助。
錯誤:服務帳戶存取
錯誤訊息:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. 當服務帳戶是 NT AUTHORITY\LOCAL SERVICE 時,就會發生此錯誤。
解決方案:
建立具有必要存取許可權的本機使用者。
在 Azure DevOps Server 管理控制台中,移至 [應用層] 畫面,然後選取 [變更帳戶]。
將服務帳戶變更為新建立的本機用戶帳戶。
重做備份程式,以成功建立備份並重新執行整備檢查。
成功的備份組態:
排程的備份記錄:
管理主控台排程備份:
此螢幕快照顯示管理主控台中的已排程備份畫面。
錯誤:記錄檔
範例記錄檔位置:
C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\Azure_DevOps_Server_Scheduled Backups_0627_192409.log
範例記錄檔錯誤訊息:
[7/1/2024 7:28:37 AM] [Error]``Exception Message: The backup of the file or filegroup "LeadingKey" is not permitted because it is not online. Container state: "Offline" (7). Restore status: 0. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.``BACKUP DATABASE is terminating abnormally. (type SqlException)
解決方案:
在執行備份之前,請確定所有檔案群組都在在線。
LeadingKeyOffline 範例:
使用 SQL 查詢來測試備份程式,以找出並解決特定檔案群組的任何問題。