29.2. 使用 network RHEL 系统角色配置 ethtool offload 功能

您可以使用 network RHEL 系统角色配置 NetworkManager 连接的 ethtool 功能。

重要

当您运行一个使用 network RHEL 系统角色的 play 时,如果设置值与 play 中指定的值不匹配,则角色会使用相同的名称覆盖现有的连接配置文件。要防止将这些值重置为其默认值,请始终在 play 中指定网络连接配置文件的整个配置,即使配置(如 IP 配置)已存在。

前提条件

步骤

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Configure the network
      hosts: managed-node-01.example.com
      tasks:
        - name: Configure an Ethernet connection with ethtool features
          ansible.builtin.include_role:
            name: rhel-system-roles.network
          vars:
            network_connections:
              - name: enp1s0
                type: ethernet
                autoconnect: yes
                ip:
                  address:
                    - 198.51.100.20/24
                    - 2001:db8:1::1/64
                  gateway4: 198.51.100.254
                  gateway6: 2001:db8:1::fffe
                  dns:
                    - 198.51.100.200
                    - 2001:db8:1::ffbb
                  dns_search:
                    - example.com
                ethtool:
                  features:
                    gro: "no"
                    gso: "yes"
                    tx_sctp_segmentation: "no"
                state: up

    此 playbook 使用以下设置创建 enp1s0 连接配置文件,或者如果配置文件已存在就更新它:

    • 静态 IPv4 地址 - 198.51.100.20 ,子网掩码为 /24
    • 静态 IPv6 地址 - 2001:db8:1::1 ,子网掩码为 /64
    • IPv4 默认网关 - 198.51.100.254
    • IPv6 默认网关 - 2001:db8:1::fffe
    • IPv4 DNS 服务器 - 198.51.100.200
    • IPv6 DNS 服务器 - 2001:db8:1::ffbb
    • DNS 搜索域 - example.com
    • ethtool 功能:

      • 通用接收卸载(GRO):禁用
      • 通用分段卸载(GSO):启用
      • TX 流控制传输协议(SCTP)分段:禁用
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误,但保护有效配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.network/README.md 文件
  • /usr/share/doc/rhel-system-roles/network/ directory