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

Ansible读取Azure Key Vault密钥失败:azure_preview_modules版本识别异常

解决Ansible Azure预览模块版本误报与azure_rm_keyvault_info模块报错问题

问题现象

  • 运行依赖azure.azure_preview_modules角色的Playbook时,角色提示Ansible版本低于2.5.0,但实际执行ansible --version显示版本为core 2.13.3
  • 调用azure_rm_keyvault_info模块时,抛出TypeError: AnsibleModule.__init__() got an unexpected keyword argument 'check_invalid_arguments'错误

解决步骤

一、修复版本检测误判问题

azure.azure_preview_modules角色的版本检测逻辑未适配Ansible Core的版本命名规则(2.10+版本改为core分支,版本号格式变化),导致误判。处理方式:

  1. 定位角色的版本检测文件:~/.ansible/roles/azure.azure_preview_modules/tasks/assertions.yml
  2. 修改版本判断逻辑,替换原有的ansible_version.full判断为兼容core版本的规则:
    - name: Check Ansible version
      assert:
        that:
          - ansible_version.major >= 2 and (ansible_version.minor >=5 or ansible_version.major >2)
        fail_msg: "You need Ansible 2.5.0 or later"
    
    应急情况下可直接注释掉该检测步骤,但不推荐长期使用。

二、修复azure_rm_keyvault_info模块参数错误

该错误源于模块使用了Ansible Core已废弃的check_invalid_arguments参数,处理方式:

  1. 强制升级azure.azure_preview_modules到最新版本:
    ansible-galaxy install azure.azure_preview_modules --force
    
  2. 若升级后问题仍存在,手动修改模块文件:
    • 定位模块文件:~/.ansible/roles/azure.azure_preview_modules/library/azure_rm_keyvault_info.py
    • 找到AnsibleModule初始化代码行,删除其中的check_invalid_arguments参数,保存后重新运行Playbook。

三、长期替代方案:使用官方Azure集合模块

azure.azure_preview_modules已停止维护,微软官方推荐使用azure.azcollection替代,步骤如下:

  1. 卸载旧角色:
    ansible-galaxy remove azure.azure_preview_modules
    
  2. 安装官方集合:
    ansible-galaxy collection install azure.azcollection
    
  3. 安装Python依赖:
    pip install azure-core azure-mgmt-keyvault azure-mgmt-resource
    
  4. 修改Playbook,将模块引用改为azure.azcollection.azure_rm_keyvault_info,并更新相关角色/集合引用格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:36:15