環境 - 虛擬機資源
Azure DevOps Services |Azure DevOps Server 2022 |Azure DevOps Server 2020
使用虛擬機 (VM) 資源來管理使用 YAML 管線跨多部機器的部署。 VM 資源可讓您在自己的伺服器上安裝代理程式,以進行輪流部署。
VM 資源會連線到 環境。 定義環境之後,您可以使用部署將 VM 新增至目標。 環境中的部署歷程記錄檢視提供從 VM 到管線的可追蹤性。
必要條件
您至少必須具備基本授權和下列區域的存取權:
- 線上至管線的存放庫
- 您想要連線到環境的 VM
如需 Azure Pipelines 安全性的詳細資訊,請參閱 管線安全性資源。
若要將 VM 新增至環境,您必須具有對應部署集區的 管理員 istrator 角色。 部署集區是組織可用的一組目標伺服器。 深入瞭解 部署集區和環境許可權。
注意
如果您要設定部署群組代理程式,或在註冊 VM 環境資源時看到錯誤,則必須將 PAT 範圍設定為 [所有可存取的組織]。
建立 VM 資源
注意
您可以使用這個相同的程式來設定具有註冊腳本的實體機器。
新增 VM 資源的第一個步驟是定義環境。
定義環境
- 視您的第一個環境而定,選取 [建立環境 ] 或 [新增環境]。
- 為環境和描述新增名稱(必要)。
- 儲存新的環境。
新增資源
選取您的環境,然後選擇 [ 新增資源]。
選取 [資源類型的虛擬機]。 然後選取下一步。
針對 操作系統選擇 [Windows] 或 [Linux]。
複製註冊腳本。 如果您已選取 Windows,且已選取 Linux 腳本,您的腳本將會是 PowerShell 腳本 。
在您想要向這個環境註冊的每個目標虛擬機上執行複製的腳本。
- 如果您要在 Windows 上安裝,您必須以 PowerShell 系統管理員身分執行腳本。
- 如果您要在 Linux 上安裝,您必須擁有下載和執行可執行腳本的許可權。
注意
- 登入用戶的個人存取令牌 (PAT) 會包含在腳本中。 PAT 會在您產生文本的當天到期。
- 如果您的 VM 上已執行任何其他代理程式,請提供唯一的名稱給 代理程式 ,以向環境註冊。
- 若要深入瞭解如何安裝代理程式腳本,請參閱自我裝載 Linux 代理程式和自我裝載的 Windows 代理程式。 VM 資源的代理程式腳本就像自我裝載代理程式的腳本,而且您可以使用相同的命令。
一旦您的 VM 註冊之後,它就會在環境的 [資源] 索引卷標下顯示為環境資源。
若要新增更多 VM,請再次複製腳本。 選取 [新增資源>虛擬機]。 針對新增至環境的所有 VM,Windows 和 Linux 腳本都相同。
成功安裝 VM 指令稿時,您的 VM 會出現在環境的資源清單中。
在管線中使用 VM
藉由參考環境,將管線中的 VM 設為目標。 根據預設,管線作業會針對針對具有 resourceName
的環境定義的所有 VM 執行。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceName: VMenv
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
注意
這些 resourceType
值會區分大小寫。 指定不正確的大小寫會導致環境中找不到相符的資源。 如需詳細資訊, 請參閱 YAML 架構 。
您可以從環境中選取特定的虛擬機,以只透過其 resourceName
指定來接收部署。 例如,若要將目標部署至環境中名為 USHAN-PC
的 VMenv
虛擬機資源,請新增 resourceName
參數,並將 值 USHAN-PC
提供給它。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
resourceName: USHAN-PC # only deploy to the VM resource named USHAN-PC
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
若要深入瞭解部署作業,請參閱 YAML 架構。
新增和管理標籤
標籤可讓您在環境中以一組特定的 VM 為目標進行部署。 您可以將標籤新增至 VM 作為互動式註冊腳本的一部分,或透過 UI。 標籤各限制為 256 個字元。 您可以使用的標籤數目沒有限制。
從資源檢視中新增或移除UI中的標籤,方法是選取VM資源的[更多動作]。
當您選取多個標籤時,包含管線中使用的所有標籤的 VM。 例如,此管線會以 具有 windows
和 prod
標籤的 VM 為目標。 如果 VM 只有其中一個標記,則不會設為目標。
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- deployment: VMDeploy
displayName: Deploy to VM
environment:
name: VMenv
resourceType: virtualMachine
tags: windows,prod # only deploy to virtual machines with both windows and prod tags
strategy:
runOnce:
deploy:
steps:
- script: echo "Hello world"
套用部署策略
套用部署策略來定義應用程式推出的方式。 runOnce
同時支援 VM 的策略和 rolling
策略。
如需部署策略和生命週期勾點的詳細資訊,請參閱 部署作業/部署策略。
檢視部署歷程記錄
選取 [ 部署] 索引 標籤,以完整追蹤認可和工作專案,以及每個環境和資源的跨管線部署歷程記錄。
從環境移除 VM
Windows 環境
若要從 Windows 環境移除 VM,請執行下列命令。 請確定您執行下列工作:
- 從系統管理員 PowerShell 命令提示字元執行命令
- 在每部電腦上執行 命令
- 在與執行環境註冊命令相同的資料夾路徑中執行 命令
./config.cmd remove
Linux 環境
若要從 Linux 環境移除 VM,請在每部電腦上執行下列命令。
./config.sh remove
已知的限制
當您重試階段時,它會在所有 VM 上重新執行部署,而不只是失敗的目標。
相關文章
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應