部署虛擬機擴展集映像。
備註
此版本的任務使用 Azure RBAC 連接到 Azure 儲存。 有關詳細資訊,請參閱 配置 Azure RBAC 以訪問 Azure 存儲。
語法
# Azure VM scale set deployment v1
# Deploy a virtual machine scale set image.
- task: AzureVmssDeployment@1
inputs:
# Azure Details
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
action: 'Update image' # 'Update image' | 'Configure application startup'. Required. Action. Default: Update image.
vmssName: # string. Required. Virtual Machine scale set name.
vmssOsType: # 'Windows' | 'Linux'. Required. OS type.
# Image Details
#imageUrl: # string. Required when action = Update image || action = UpdateImage. Image URL.
# Configure start-up
#customScriptsDirectory: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Custom script directory.
#customScript: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Command.
#customScriptArguments: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Arguments.
#customScriptsStorageAccount: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Azure storage account where custom scripts will be uploaded.
# Advanced
#skipArchivingCustomScripts: false # boolean. Skip Archiving custom scripts. Default: false.
輸入
action
-
動作
string。 必須的。 允許的值:Update image(使用映射更新 VM 擴展集),Configure application startup(在 VM 擴展集上執行自定義腳本 VM 擴充功能)。 預設值: Update image。
選擇使用 VHD 映射更新 VM 規模集和/或使用自定義腳本 VM 擴展運行部署/安裝腳本。
VHD 映像方法更適合快速縮放和執行回滾。 擴展方法對於部署后配置、軟體安裝或任何其他配置/管理任務非常有用。
只有在使用自定義映射創建 VM 規模集時,才能使用 VHD 映射更新 VM 規模集,如果 VM 規模集是使用 Azure 中提供的平臺/庫映射創建的,則更新將失敗。
自訂腳本 VM 擴充方法可用於使用自訂映像或平臺/庫映射創建的 VM 規模集。
vmssName
-
虛擬機擴展集名稱
string。 必須的。
要使用 VHD 映像或使用自訂腳本 VM 擴展更新的 VM 規模集的名稱。
vmssOsType
-
OS 類型
string。 必須的。 允許的值:Windows、Linux。
選擇 VM 規模集的作系統類型。
imageUrl
-
影像 URL
string。
action = Update image || action = UpdateImage時為必要項。
指定 VHD 映像的 URL。 如果它是 Azure 存儲 blob URL,則存儲帳戶位置應與規模集位置相同。
customScriptsDirectory
-
自定義文本目錄
string。 選擇性。
action = Configure application startup || action = Update image || action = UpdateImage時使用 。
包含將使用自定義文稿 VM 擴展運行的自訂文稿的目錄的路徑。 擴充方法適用於部署後設定、應用程式/軟體安裝或任何其他應用程式組態/管理工作。 例如:該腳本可以設置應用程式使用的機器級環境變數,如資料庫連接字串。
customScript
-
命令
string。 選擇性。
action = Configure application startup || action = Update image || action = UpdateImage時使用 。
將使用自訂文稿 VM 擴展運行的腳稿。 此文稿可以調用目錄中的其他腳本。 將使用下面傳遞的參數調用該腳本。
此腳本與此類參數共軛可用於執行命令。 例如:
1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd) 將更新 Web 應用程式 web.config 中的連接字串。
2. install-secrets.sh --key-vault-type prod -key serviceprincipalkey 將創建一個包含服務主體密鑰的加密檔。
customScriptArguments
-
自變數
string。 選擇性。
action = Configure application startup || action = Update image || action = UpdateImage時使用 。
自訂腳本將會使用傳遞的自變數來叫用。 可以使用 Build/Release 變數,這使得使用 secret 變得容易。
customScriptsStorageAccount
-
將上傳自定義腳本的 Azure 記憶體帳戶
string。 選擇性。
action = Configure application startup || action = Update image || action = UpdateImage時使用 。
自定義腳本擴展在 VM 規模集中的每個虛擬機上下載並執行你提供的腳本。 這些文稿將存儲在此處指定的存儲帳戶中。 指定預先存在的ARM記憶體帳戶。
skipArchivingCustomScripts
-
略過封存自定義腳本
boolean。 預設值: false。
默認情況下,此任務會創建包含自定義腳本的目錄的壓縮存檔。 這可以提高上傳到 Azure 儲存時的性能和可靠性。 如果未選取,則不會完成封存,而且會個別上傳所有檔案。
工作控制選項
除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性。
輸出變數
沒有。
備註
使用此工作來部署虛擬機擴展集映像。
腳本執行會回報為成功,但不會更新 VMSS 實例
擴展集具有升級原則,可決定 VM 如何以最新的擴展集模型 up-to-date,如果升級原則設定為手動,您必須手動升級每個 VM。 如需詳細資訊,請參閱 如何使用最新的擴展集模型將 VM up-to-date。 您可以變更更新原則,或手動升級每個 VM。 例如,若要將原則升級為 Automatic,請使用下列 Az CLI 命令:az vmss update --set upgradePolicy.mode=Automatic -g <resource group name> -n <vmss name>
錯誤:「許可權遭拒:腳本無法執行」
如果您嘗試執行自定義腳本,但腳本不是可執行的,就會發生此問題。
若要解決此問題,請先確定 customScript 輸入在腳本名稱 ./之前沒有 'test.sh' 或其他任何專案:
customScript: 'test.sh'
接下來,請嘗試在虛擬機擴展集工作之前新增命令行工作:
- task: CmdLine@2
inputs:
script: 'chmod 777 $(System.DefaultWorkingDirectory)/test.sh'
配置 Azure RBAC 以訪問 Azure 儲存
此版本的任務使用使用工作負載聯合身份驗證和 Azure RBAC 配置的 Azure 資源管理器服務連接 來連接到 Azure 存儲,而不是存儲帳戶密鑰或共用存取簽名 (SAS)。 若要從此任務連接到 Azure 存儲,必須將儲存帳戶上的 「存儲 Blob 數據參與者 」角色分配給為 azureSubscription配置的服務連接的標識。
有關詳細資訊,請參閱分配 Azure 角色以訪問 blob 數據和分配角色的步驟。
該 AzureVmssDeployment@1 任務需要以下額外的 RBAC 角色,這些角色配置為訪問 中 customScriptsStorageAccount配置的存儲帳戶。
| 角色 | 資源 | 使用者 |
|---|---|---|
| 參與者 或 虛擬機參與者 | 虛擬機器擴展集 | 為 azureSubscription |
| 儲存體 Blob 資料參與者 | 保存自定義文稿的 Azure 儲存帳戶 | 為 azureSubscription |
| 儲存體 Blob 資料讀取器 | 保存自定義文稿的 Azure 儲存帳戶 | 虛擬機規模集系統分配的託管標識 |
需求
| 要求 | 說明 |
|---|---|
| 管線類型 | YAML、傳統組建、傳統版本 |
| 執行於 | Agent、DeploymentGroup |
| 要求 | 沒有 |
| 能力 | 此工作不符合作業中後續工作的任何需求。 |
| 命令限制 | 任意 |
| Settable 變數 | 任意 |
| 代理程式版本 | 2.209.0 或更新 |
| 工作類別 | 部署 |