如何使用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
相关产品推荐
相关产品推荐

