You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ansible创建带Unmanaged Disk的Azure虚拟机?

嘿,我懂你找这个参数的困惑——Azure CLI里的--use-unmanaged-disk确实没在Ansible的VM模块里做直接对应的开关,但咱们可以通过配置磁盘属性来实现完全一样的效果,原理和CLI是一致的。

在Ansible Playbook中配置Azure非托管磁盘

非托管磁盘本质是存储账户里的VHD文件,所以Ansible是通过定义存储账户+指定磁盘类型的方式来实现,而不是单独的一个参数。下面是具体步骤:

1. 先创建存储账户(如果没有现成的)

非托管磁盘需要依赖一个标准存储账户(推荐Standard_LRS类型,高级非托管磁盘用Premium_LRS),可以在Playbook里先完成创建:

- name: 创建用于存放非托管磁盘的存储账户
  azure_rm_storageaccount:
    resource_group: your-resource-group
    name: your-storage-account-name  # 注意名称必须全局唯一
    account_type: Standard_LRS
    location: your-region

2. 配置VM使用非托管磁盘

在azure_rm_virtualmachine模块中,通过os_disk参数设置managed_disk_type: None,同时关联刚才创建的存储账户,就能让VM使用非托管磁盘了:

- name: 创建带非托管磁盘的虚拟机
  azure_rm_virtualmachine:
    resource_group: your-resource-group
    name: your-vm-name
    vm_size: Standard_DS1_v2
    admin_username: your-admin-user
    admin_password: your-secure-password
    image:
      offer: UbuntuServer
      publisher: Canonical
      sku: 18.04-LTS
      version: latest
    os_disk:
      managed_disk_type: None  # 关键:禁用托管磁盘
      storage_account: your-storage-account-name  # 指定存储账户
      caching: ReadWrite

3. 额外:添加非托管数据磁盘

如果需要挂载数据磁盘,同样在data_disks里做类似配置:

data_disks:
  - name: vm-data-disk-01
    disk_size_gb: 20
    managed_disk_type: None
    storage_account: your-storage-account-name
    caching: None

补充说明

你参考的微软指南默认是创建托管磁盘,所以没提到这个配置——这就是你找不到对应选项的原因,Ansible把这个逻辑整合到了磁盘类型的配置里,而不是单独的开关参数。

如果需要自定义VHD存放的容器,还可以在os_disk或data_disks里添加vhd_container: your-container-name参数(默认是vhds容器)。

内容的提问来源于stack exchange,提问作者Bruce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:01:38