Ansible nxos_interface模块配置Nexus交换机接口报错求助
Ansible nxos_interface模块配置Nexus接口错误排查与解决
嘿,我来帮你搞定这个问题!你遇到的那个ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'>错误,根源其实是nxos_interface模块的参数格式写错了,咱们一步步来修正:
错误原因分析
你在配置接口的任务里,把nxos_interface的参数写成了列表(- name: ...)的形式,但这个模块是单资源型模块,它的参数需要直接用键值对定义,不能套列表结构——这就是导致参数类型报错的核心原因。
修正后的完整剧本
- name: 配置以太网接口 hosts: nx-os tasks: - name: 过滤主机名 ios_command: commands: "show run | inc hostname" register: output - name: 配置接口 nxos_interface: name: "{{ item.name }}" admin_state: up duplex: full speed: auto with_items: - name: Ethernet1/41 - name: Ethernet1/42 when: "'nx-os' in output.stdout[0]"
关键修正点
只需要把nxos_interface下面的- name: "{{ item.name }}"前面的减号去掉,直接用name: "{{ item.name }}"这种键值对形式就可以了。这个模块本身是针对单个接口的配置,配合with_items循环就能批量处理多个接口,每个item对应一个接口的配置项。
关于警告信息的补充说明
你看到的两个警告不影响核心功能,但如果想消除的话可以这么做:
- 弃用警告:在
ansible.cfg里添加deprecation_warnings=False就能关闭。 - 组名非法字符警告:你的组名
nx-os包含了-,Ansible默认不允许组名有这类字符。可以把组名改成nxos,或者在ansible.cfg里设置TRANSFORM_INVALID_GROUP_CHARS=ignore来忽略这个检查。
内容的提问来源于stack exchange,提问作者rkbalaguru
相关产品推荐
相关产品推荐

