Share via


AzureVmssDeployment@0 - Azure VM 擴展集部署 v0 工作

此工作會部署虛擬機擴展集映像。

Syntax

# Azure VM scale set deployment v0
# Deploy a virtual machine scale set image.
- task: AzureVmssDeployment@0
  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.
# Azure VM scale set Deployment v0
# Deploy Virtual Machine scale set image.
- task: AzureVmssDeployment@0
  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 Resource Manager 訂用帳戶。


action - 行動
string. 必要。 允許的值: Update image (使用映射) 更新 VM 擴展集, Configure application startup (在 VM 擴充功能) 。 預設值:Update image

使用 VHD 映像和/或使用自定義腳本 VM 擴充功能執行部署/安裝腳本,匯報 所選方法的 VM 擴展集。

VHD 映像方法 較適合快速調整並執行復原。 使用自定義映像建立 VM 擴展集時,可以透過 VHD 映像加以更新。 如果使用 Azure 中可用的平臺/資源庫映像建立 VM 擴展集,更新將會失敗。

自定義腳本 VM 擴充功能方法 適用於部署後設定、軟體安裝或任何其他設定/管理工作。 自定義腳本 VM 擴充方法可用於使用自訂映像或平臺/資源庫映像所建立的 VM 擴展集。


vmssName - 虛擬機擴展集名稱
string. 必要。

指定要更新的 VM 調整設定名稱。 使用 VHD 映像或自定義腳本 VM 擴充功能。


vmssOsType - OS 類型
string. 必要。 允許值:WindowsLinux

指定 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 擴充功能執行的自定義腳本 (s) 。 擴充方法適用於部署後設定、應用程式/軟體安裝或任何其他應用程式設定/管理工作。 例如,腳本可以設定應用程式所使用的機器層級環境變數,例如資料庫連接字串。


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

選擇性。 自訂腳本將會使用傳遞的自變數來叫用。 您可以使用建置/發行變數,這可讓您輕鬆地使用秘密。


customScriptsStorageAccount - 將上傳自定義腳本的 Azure 記憶體帳戶
string. 選擇性。 使用 時 action = Configure application startup || action = Update image || action = UpdateImage

選擇性。 自訂腳本延伸模組會在 VM 擴展集中的每個虛擬機上下載並執行提供的腳本。 這些文稿會儲存在此處指定的預先存在的ARM記憶體帳戶中。


skipArchivingCustomScripts - 略過封存自定義腳本
boolean. 預設值:false

選擇性。 根據預設,此工作會建立包含自定義腳本之目錄的壓縮封存。 這可改善上傳至 Azure 記憶體時的效能和可靠性。 如果未選取,則不會完成封存,而且將會個別上傳所有檔案。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制選項和一般工作屬性

輸出變數

無。

備註

使用此工作來部署虛擬機擴展集映像。

腳本執行會回報為成功,但不會更新 VMSS 實例

擴展集有一個升級原則,可決定 VM 如何以最新的擴展集模型進行最新狀態,而且如果升級原則設定為手動,您必須手動升級每個 VM。 如需詳細資訊,請參閱 如何使用最新的擴展集模型讓 VM 最新狀態。 您可以變更更新原則,或手動升級每個 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' 

規格需求

需求 描述
管線類型 YAML、傳統組建、傳統版本
在上執行 Agent、DeploymentGroup
要求
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任何
可設定變數 任何
代理程式版本 2.0.0 或更新版本
工作類別 部署