共用方式為


AzureVmssDeployment@1 - Azure VM 規模集部署 v1 任務

部署虛擬機擴展集映像。

備註

此版本的任務使用 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.

輸入

azureSubscription - Azure 訂用帳戶
輸入別名ConnectedServiceNamestring。 必須的。

選擇規模集的 Azure 資源管理員訂閱。


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。 必須的。 允許的值:WindowsLinux

選擇 VM 規模集的作系統類型。


imageUrl - 影像 URL
stringaction = 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 儲存帳戶 虛擬機規模集系統分配的託管標識

用於自定義文稿訪問的 Azure RBAC 訪問。

需求

要求 說明
管線類型 YAML、傳統組建、傳統版本
執行於 Agent、DeploymentGroup
要求 沒有
能力 此工作不符合作業中後續工作的任何需求。
命令限制 任意
Settable 變數 任意
代理程式版本 2.209.0 或更新
工作類別 部署