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

Ansible自动化平台中Azure资产同步失败问题求助

解决AAP同步Azure主机时的azure_rm.yml解析错误

一、azure_rm.yml的定位与作用

  • 这是Ansible Azure动态inventory的核心配置文件,用来定义从Azure订阅筛选、导入主机的规则(比如按资源组、标签、虚拟机状态过滤)。
  • 在AAP环境中:
    • 若用Git仓库作为inventory来源,该文件必须放在同步的Git仓库内(和requirements.yml同目录或指定的inventory路径下);
    • 若直接在AAP UI配置“Microsoft Azure Resource Manager”类型资产,无需手动创建该文件——AAP会自动生成临时配置,但如果手动添加了来源变量,必须保证参数格式正确。

二、azure_rm.yml的基础配置模板

以下是可直接复用的配置,可根据需求调整筛选规则:

plugin: azure.azcollection.azure_rm
# 可选:指定要导入的虚拟机所在资源组,留空则导入所有资源组的虚拟机
include_vm_resource_groups:
  - prod-resource-group
  - test-resource-group
auth_source: auto
subscription_id: "你的Azure订阅ID"
# 可选:按标签筛选主机
tags:
  env: production
# 可选:只导入运行状态的虚拟机
powerstate: running
# 可选:设置主机名取值(公网IP/私网IP/虚拟机名称)
hostname: public_ip_address
  • plugin字段必须和你在AAP来源变量中配置的azure.azcollection.azure_rm完全一致;
  • auth_source: auto会自动读取AAP中配置的Azure凭据,无需在文件中明文写密钥;
  • 不需要的筛选规则可直接删除,比如不需要标签过滤就删掉tags块。

三、文件存放与AAP配置匹配

Git仓库来源场景

  1. 将azure_rm.yml放在Git仓库的inventory目录下(比如仓库根目录,或inventory/azure_rm.yml);
  2. 在AAP的Inventory来源配置中,把“Inventory file or directory”设为该文件的路径(比如./azure_rm.yml);
  3. 确认Git仓库的requirements.yml已包含azure.azcollection,且AAP已同步成功。

AAP原生Azure资产场景

  1. 若直接在AAP UI创建“Microsoft Azure Resource Manager”资产,无需手动创建azure_rm.yml;
  2. 检查“来源变量”中的配置,只保留必要参数即可,例如:
    plugin: azure.azcollection.azure_rm
    include_vm_resource_groups: ["prod-resource-group"]
    powerstate: running
    
  3. 此时AAP会自动生成临时配置文件,无需手动维护azure_rm.yml。

四、关键排查步骤

  • 验证azure.azcollection版本:执行ansible-galaxy collection list azure.azcollection,确保版本为最新稳定版(≥1.14.0),版本过低则重新安装:ansible-galaxy collection install azure.azcollection --force;
  • 检查Azure凭据权限:确保AAP配置的凭据拥有虚拟机读取权限(比如Azure内置的“Reader”角色);
  • 本地测试配置:在Ansible服务器上执行ansible-inventory -i azure_rm.yml --list,如果能正常输出主机列表,说明配置有效,再重新同步AAP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:23:17