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

如何使用Ansible检测远程服务器Ethernet端口的运行状态

用Ansible核查远程主机以太网端口启用状态的两种方案

方案1:基于原生setup模块采集(无额外依赖)

Ansible的setup模块默认会采集目标主机的网卡信息,无需在目标主机安装额外工具,适合常规核查场景:

  • 单次adhoc查询命令:
    ansible <目标主机/主机组> -m setup -a "filter=ansible_*_interfaces"
    返回结果中对应以太网端口的active值为true即代表端口处于up状态,反之则为down。
  • Playbook批量核查示例(以端口eth0为例):
---
- name: 批量核查以太网端口状态
  hosts: your_target_hosts
  gather_facts: yes
  tasks:
    - name: 输出eth0端口状态
      debug:
        msg: "eth0 状态:{{ 'up' if ansible_eth0.active else 'down' }}"

    - name: 端口down时抛出异常
      fail:
        msg: "eth0端口未处于启用状态"
      when: not ansible_eth0.active

方案2:调用系统命令查询实时状态(准确度更高)

如果需要确认端口的最新实时状态,可直接调用目标主机的ip命令查询,结果更精准:

  • 单次adhoc查询命令:
    ansible <目标主机/主机组> -m shell -a "ip link show eth0 | grep -q 'UP'; echo $?"
    返回结果为0代表端口up,返回1代表端口down。
  • Playbook批量核查示例:
---
- name: 实时核查以太网端口状态
  hosts: your_target_hosts
  gather_facts: no
  tasks:
    - name: 查询eth0端口状态
      shell: "ip link show eth0 | grep -q 'UP'"
      register: eth0_status
      ignore_errors: yes
      changed_when: false

    - name: 输出状态结果
      debug:
        msg: "eth0 状态:{{ 'up' if eth0_status.rc == 0 else 'down' }}"

    - name: 异常终止
      fail:
        msg: "eth0端口未启用"
      when: eth0_status.rc != 0

提示:将上述示例中的eth0替换为你实际要核查的端口名(常见命名还有ens33、enp0s3等),可先在目标主机执行ip addr确认端口命名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:45:04