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

如何用Ansible创建使用主网卡的OpenvSwitch网桥并避免锁机

我之前也踩过这个坑!用Ansible通过SSH配置OpenvSwitch网桥时,直接执行ip addr flush dev eth0绝对会把SSH会话搞断——毕竟你的连接就跑在eth0上呢。下面是我亲测有效的几个解决思路,帮你避开这个问题:

方案1:临时IP过渡(最稳妥的常规操作)

核心思路是先给eth0加一个同网段的临时IP,这样即使flush掉原主IP,SSH会话还能通过临时IP维持,等网桥配置完成后再清理临时IP。

- name: 给eth0添加临时过渡IP
  ansible.builtin.command: ip addr add 192.168.128.99/24 dev eth0

- name: 清空eth0原有IP地址
  ansible.builtin.command: ip addr flush dev eth0

- name: 给br0配置目标IP
  ansible.builtin.command: ip addr add 192.168.128.5/24 dev br0

- name: 启动br0网桥
  ansible.builtin.command: ip link set br0 up

- name: 移除eth0上的临时IP(可选,清理冗余)
  ansible.builtin.command: ip addr del 192.168.128.99/24 dev eth0

注意:临时IP要和目标IP在同一网段,而且要确保防火墙/安全组允许这个临时IP的SSH访问,不然还是会断连。

方案2:后台异步执行+等待重连

如果不想用临时IP,可以把网桥配置命令打包成脚本后台执行,让Ansible不用等命令完成就返回,然后等待网桥的IP恢复连通性后再继续后续任务。

- name: 创建网桥配置脚本
  ansible.builtin.copy:
    content: |
      #!/bin/bash
      # 先给br0加IP再清空eth0,尽量缩短断连窗口
      ip addr add 192.168.128.5/24 dev br0
      ip link set br0 up
      ip addr flush dev eth0
    dest: /tmp/setup_ovs_bridge.sh
    mode: '0755'

- name: 后台执行网桥配置脚本
  ansible.builtin.command: /tmp/setup_ovs_bridge.sh
  async: 30  # 命令最长执行30秒
  poll: 0     # 立即返回,不等待执行完成

- name: 等待br0的IP恢复SSH连通性
  ansible.builtin.wait_for:
    host: 192.168.128.5
    port: 22
    delay: 5  # 延迟5秒再开始检测,给配置留时间
    timeout: 30  # 最多等待30秒

这个方案的好处是不需要额外的临时IP,缺点是断连窗口存在,需要确保wait_for能正确检测到连通性。

方案3:用OVS官方Ansible模块规范配置

Ansible有专门的OpenvSwitch模块,用它来管理网桥和端口会更规范,减少手动命令的风险。不过还是要配合IP切换的逻辑,避免断连:

- name: 创建OVS网桥br0
  openvswitch.openvswitch.ovs_bridge:
    bridge: br0
    state: present

- name: 将eth0添加到br0网桥
  openvswitch.openvswitch.ovs_port:
    bridge: br0
    port: eth0
    state: present

- name: 给br0配置目标IP(先加IP再清空eth0)
  ansible.builtin.command: ip addr add 192.168.128.5/24 dev br0

- name: 启动br0网桥
  ansible.builtin.command: ip link set br0 up

- name: 清空eth0原有IP地址
  ansible.builtin.command: ip addr flush dev eth0

这里调整了顺序:先给br0加IP并启动,再清空eth0的IP,这样能尽量缩短断连时间,最好还是配合方案1的临时IP一起用,更保险。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:31:31