如何使用Ansible获取Azure平台虚拟机的facts信息?
Ansible获取Azure虚拟机全量Facts、状态与配置信息方案
你当前使用的azure_rm_virtualmachine_facts是Azure Ansible模块中用于获取虚拟机信息的官方模块,未返回完整信息通常是模块版本过低、参数缺失或权限不足导致,可按以下步骤操作获取全量数据:
前置环境校验
- 升级Azure官方集合到最新版本,旧版本模块存在返回字段缺失问题,执行命令:
ansible-galaxy collection install azure.azcollection --upgrade - 安装对应版本的Azure Python SDK依赖,避免接口调用异常:
pip install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt - 确认Ansible使用的认证身份(服务主体/账号)对目标资源组、虚拟机拥有
Reader及以上权限,权限不足会导致返回字段截断。
调整Playbook配置拉取全量信息
旧版模块名azure_rm_virtualmachine_facts在新版本集合中已更名为azure_rm_virtualmachine_info,旧别名虽兼容但新模块字段覆盖更全。默认配置不会返回运行态实例信息,需添加get_instance_view参数拉取电源状态、健康状态等动态数据,参考配置如下:
- name: 拉取Azure虚拟机全量信息 hosts: localhost connection: local gather_facts: false tasks: - name: 获取目标VM全量facts azure.azcollection.azure_rm_virtualmachine_info: resource_group: startAnsible name: startAnsible-vm get_instance_view: true # 开启后返回运行态状态数据 register: vm_detail - name: 输出全量返回结果 ansible.builtin.debug: var: vm_detail
可获取的信息范围
开启全量拉取后,可拿到以下维度的信息:
- 基础配置:VM规格、操作系统类型、管理员账号配置、创建时间、标签、可用区/可用性集归属
- 存储配置:OS盘、数据盘的ID、容量、存储类型、加密配置
- 网络配置:关联网卡信息、公私网IP地址、NSG绑定规则、所属虚拟网络/子网配置
- 运行状态(开启
get_instance_view后返回):电源状态(运行中/已停止/已释放)、VM Agent运行状态、扩展部署状态、主机健康度、最近操作记录
如果需要获取关联资源的更细粒度配置,可搭配对应官方模块补充拉取:
- 公网IP详细属性:使用
azure_rm_publicipaddress_info模块 - 托管磁盘性能配置(IOPS、吞吐量):使用
azure_rm_managed_disk_info模块 - 运行监控指标(CPU、内存、磁盘使用率):使用
azure_rm_metrics_info模块
内容的提问来源于stack exchange,提问作者Umair Hameed
相关产品推荐
相关产品推荐

