使用Ansible nmcli模块为Bond接口配置VLAN标签遇阻求助
问题诊断与解决方案
从你的配置输出可以看到,bond0.10 VLAN连接已创建但未激活(DEVICE列显示--),同时原Playbook的VLAN配置存在参数错误,导致无法正常工作。
核心问题点
vlandev参数配置错误:该参数应指定VLAN的父接口bond0,而非vlan10- 未激活VLAN接口:仅设置
state: present只会创建连接,不会激活接口 - 缺少VLAN接口IP配置:若需要该接口提供网络连通性,需补充IP地址配置
- 模块名不规范:应使用完整的
community.general.nmcli模块名,避免兼容性问题 - Bond接口子网掩码异常:原配置中
bond0的IP为10.0.2.40/32,这会导致同网段通信故障,建议修正为合理的子网(如/24)
修正后的Playbook
tasks: - name: 创建Bond接口并配置IP community.general.nmcli: type: bond conn_name: "{{ item.conn_name }}" ip4: "{{ item.ip4 }}" gw4: "{{ item.gw4 }}" mode: "{{ item.mode }}" state: present with_items: - "{{ nmcli_bond }}" - name: 添加Bond从接口 community.general.nmcli: type: bond-slave conn_name: "{{ item.conn_name }}" ifname: "{{ item.ifname }}" master: "{{ item.master }}" state: present with_items: - "{{ nmcli_bond_slave }}" # 配置Bond0上的VLAN10接口 - name: 配置bond0.10 VLAN接口 community.general.nmcli: type: vlan conn_name: bond0.10 ifname: bond0.10 vlandev: bond0 vlanid: 10 ip4: "192.168.10.20/24" # 根据你的网络规划调整IP gw4: "192.168.10.1" # 可选:配置网关 state: up # 创建并激活接口
变量配置建议
确保nmcli_bond变量的子网掩码正确,示例:
nmcli_bond: - conn_name: bond0 ip4: "10.0.2.40/24" gw4: "10.0.2.1" mode: active-backup # 或其他Bond模式(如802.3ad)
验证命令
执行Playbook后,通过以下命令确认配置生效:
- 查看连接状态:
nmcli connection show,确认bond0.10的DEVICE列显示bond0.10 - 查看接口详情:
ip a show bond0.10,确认接口处于UP状态并配置了正确的IP - 测试连通性:
ping 192.168.10.1(根据你的IP配置调整)
内容的提问来源于stack exchange,提问作者Tomer Shachaf
相关产品推荐
相关产品推荐

