18.4. 使用 network RHEL 系统角色和设备路径,配置具有动态 IP 地址的以太网连接
要将 Red Hat Enterprise Linux 主机连接到以太网网络,请为网络设备创建一个 NetworkManager 连接配置文件。通过使用 Ansible 和 network
RHEL 系统角色,您可以自动化此过程,并在 playbook 中定义的主机上远程配置连接配置文件。
您可以使用 network
RHEL 系统角色配置以太网连接,该连接从 DHCP 服务器检索其 IP 地址、网关和 DNS 设置,以及 IPv6 无状态地址自动配置(SLAAC)。角色可以根据其路径而不是接口名称将连接配置文件分配给设备。
先决条件
- 您已准备好控制节点和受管节点。
- 您以可在受管主机上运行 playbook 的用户身份登录到控制节点。
-
您用于连接到受管节点的帐户对它们具有
sudo
权限。 - 服务器配置中有一个物理或者虚拟以太网设备。
- 网络中有 DHCP 服务器和 SLAAC。
- 受管主机使用 NetworkManager 配置网络。
-
您知道设备的路径。您可以使用
udevadm info /sys/class/net/<device_name> | grep ID_PATH=
命令显示设备路径。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 playbook 中指定的设置包括如下:
match: path
-
定义一个应用设置所必须满足的条件。您只能将此变量与
path
选项一起使用。 path: <path_and_expressions>
-
定义设备的持久路径。您可以将它设置为固定路径或表达式。其值可以包含修饰符和通配符。这个示例将设置应用到与 PCI ID
0000:00:0[1-3].0
而不是0000:00:02.0
匹配的设备。 dhcp4: yes
- 启用来自 DHCP、PPP 或类似服务的自动 IPv4 地址分配。
auto6: yes
-
启用 IPv6 自动配置。默认情况下,NetworkManager 使用路由器公告。如果路由器宣布
managed
标记,则 NetworkManager 会从 DHCPv6 服务器请求 IPv6 地址和前缀。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件。验证 playbook 语法:
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
查询受管节点的 Ansible 事实,并验证接口是否收到 IP 地址和 DNS 设置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow