如何确保所指定的Azure虚拟机大小可用

68次阅读
没有评论

问题描述

尝试使用类似以下的Playbook创建一个虚拟机(VM):

tasks:
  ...
  - name: Create VM
    azure_rm_virtualmachine:
      resource_group: AnsibleResourcEGroup
      name: AnsibleVM
      vm_size: Standard_D4s_v3
      ...

然而,在运行Playbook时,”Create VM” 任务失败,并显示以下错误信息:

fatal: [localhost]: FAILED! => {
  "changed": false,
  "msg": "Error creating or updating virtual machine AnsibleVM - Azure Error: SkuNotAvailable\nMessage: The requested size for resource '/subscriptions/some-subscription-id/resourceGroups/some-resource-group-name/providers/Microsoft.Compute/virtualMachines/AnsibleVM' is currently not available in location 'region-name' zones '' for subscription 'some-subscription-id'. Please try another size or deploy to a different location or zones. See https://aka.ms/azureskunotavailable for details."
}

然而,当使用az命令行工具查询可用的VM大小时,大小Standard_D4s_v3似乎是可用的:

$ az vm list-skus --location region-id --size Standard_D --output table
ResourceType    Locations    Name                Zones    Capabilities  ...
virtualMachines  region-id    Standard_D2s_v3     1,2,3    ['MaxResourceVolumeMB=16384', ...]  None
virtualMachines  region-id    Standard_D4s_v3     1,2,3    ['MaxResourceVolumeMB=32768', ...]  None
virtualMachines  region-id    Standard_D8s_v3     1,2,3    ['MaxResourceVolumeMB=65536', ...]  None
...

这引发了一个问题:我的理解哪里出了错?我应该如何确保在我的地区中有一个可用的VM大小?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在使用Ansible时,确保正确设置了region-id,这样可以明确指定地区。如果未在Ansible中指定region-id,它将使用资源组的默认地区。如果你的资源组在不支持Standard_D4s_v3的地区,你将遇到问题。
以下是在Ansible Playbook 中如何设置地区的步骤:
1. 在Playbook的azure_rm_virtualmachine任务中,添加location参数并设置为所需的地区。
2. 例如,如果你想将虚拟机创建在东南亚地区,你可以这样设置:
yaml
tasks:
...
- name: Create VM
azure_rm_virtualmachine:
resource_group: AnsibleResourcEGroup
name: AnsibleVM
vm_size: Standard_D4s_v3
location: southeastasia
...

方案2

特定的VM实例类型有时在某个地区由于Azure的资源限制而不可用,这通常是一个临时状态,因此等待几个小时后再试可能会成功。你可以稍后再次尝试创建虚拟机。

方案3

另一个可能性是,你的Azure订阅可能受到配额限制,这可能会阻止你创建虚拟机。但如果是这种情况,你应该会收到不同的、更具描述性的错误信息。你可以检查你的订阅的限制和配额,以确保它们没有阻止你创建VM。

通过采取上述措施,你应该能够解决问题,确保所指定的Azure虚拟机大小在你所在的地区可用。如果问题仍然存在,请检查其他可能的原因,例如Azure服务状态或其他地区限制。

正文完