部署虚拟机规模集映像。
注释
此版本的任务使用 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日期,如果升级策略设置为手动,则必须手动升级每个 VM。 有关详细信息,请参阅 如何使用最新的规模集模型将 VM up-to日期。 可以更改更新策略或手动升级每个 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 存储帐户 | 虚拟机规模集系统分配的托管标识 |