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

Ansible使用with_items配置交换机接口报list无startswith属性错误

错误原因

报错AttributeError: 'list' object has no attribute 'startswith'是因为你当前使用的ios_config模块版本要求parents参数必须传入列表类型,你现在传入的是纯字符串,模块内部处理时误将字符串按列表遍历,调用字符串专属方法时就触发了该错误。另外你的模板变量语法存在小瑕疵,{{ item.int_name}}缺少变量名和结束括号之间的空格,部分场景下会触发解析异常。

修复后Playbook示例

- name: "CONFIGURE INTERFACE IN ACCESS MODE"
  ios_config:
    commands:
      - description {{ item.desc }}
      - switchport mode access
      - switchport access vlan {{ item.vlan_id }}
    parents: ["interface {{ item.int_name }}"]
  with_items: 
    - {int_name: 'GigabitEthernet 1/0/1', desc: 'Internet vers Routeur OBS', vlan_id: 400 }
    - {int_name: 'GigabitEthernet 1/0/2', desc: 'Internet OBS vers FW-907411-F', vlan_id: 400 }
    - {int_name: 'GigabitEthernet 1/0/3', desc: 'Internet BBOX vers FW-907411-F', vlan_id: 401 }
    - {int_name: 'GigabitEthernet 1/0/9', desc: 'MGMT vers FW-907411-F', vlan_id: 20 }
    - {int_name: 'GigabitEthernet 1/0/10', desc: 'SONOS', vlan_id: 20 }

额外注意事项

  • 若修改后仍有异常,可先检查Ansible版本,2.9及以上版本对ios系列模块的参数兼容性更好,你当前运行环境使用的Python2.7已经停止维护,建议升级到Python3.6+搭配新版Ansible使用
  • 接口名称要和设备实际显示完全一致,避免出现GigabitEthernet 1/0/1(带空格)和GigabitEthernet1/0/1(不带空格)的写法不匹配问题

内容的提问来源于stack exchange,提问作者Cheikh Ahmed Tidiane FALL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:07