19.11. 使用 network RHEL 系统角色在现有连接上设置默认网关
如果数据包的目的地无法通过直接连接的网络或通过主机上配置的任何路由,则主机将网络数据包转发到其默认网关。要配置主机的默认网关,请在连接到与默认网关相同的网络的 NetworkManager 连接配置文件中设置它。通过使用 Ansible 和 network
RHEL 系统角色,您可以在 playbook 中定义的主机上自动化这个过程,并远程配置连接配置集。
在大多数情况下,管理员在创建连接时设置默认网关。但是,您也可以在之前创建的连接上设置或更新默认网关设置。
您不能使用 network
RHEL 系统角色只更新现有连接配置文件中的特定值。该角色可确保连接配置集与 playbook 中的设置完全匹配。如果存在具有相同名称的连接配置文件,该角色将应用 playbook 中的设置,并将配置文件中的所有其他设置重置为默认值。要防止重置值,请始终在 playbook 中指定网络连接配置文件的整个配置,包括您不想更改的设置。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
步骤
创建包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Configure the network hosts: managed-node-01.example.com tasks: - name: Ethernet connection profile with static IP address settings 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 state: up
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
查询受管节点的 Ansible 事实并验证活跃的网络设置:
# ansible managed-node-01.example.com -m ansible.builtin.setup ... "ansible_default_ipv4": { ... "gateway": "198.51.100.254", "interface": "enp1s0", ... }, "ansible_default_ipv6": { ... "gateway": "2001:db8:1::fffe", "interface": "enp1s0", ... } ...
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件 -
/usr/share/doc/rhel-system-roles/network/
directory