18.11. 使用 network RHEL 系统角色配置静态路由
您可以使用 network RHEL 系统角色配置静态路由。
重要
当您运行一个使用 network RHEL 系统角色的 play 时,如果设置值与 play 中指定的值不匹配,则角色会使用相同的名称覆盖现有的连接配置文件。要防止将这些值重置为其默认值,请始终在 play 中指定网络连接配置文件的整个配置,即使配置(如 IP 配置)已存在。
先决条件
- 您已准备好控制节点和受管节点。
- 您以可在受管主机上运行 playbook 的用户身份登录到控制节点。
-
您用于连接到受管节点的帐户对它们具有
sudo权限。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml:--- - name: Configure the network hosts: managed-node-01.example.com tasks: - name: Configure an Ethernet connection with static IP and additional routes ansible.builtin.include_role: name: redhat.rhel_system_roles.network vars: network_connections: - name: enp7s0 type: ethernet autoconnect: yes ip: address: - 192.0.2.1/24 - 2001:db8:1::1/64 gateway4: 192.0.2.254 gateway6: 2001:db8:1::fffe dns: - 192.0.2.200 - 2001:db8:1::ffbb dns_search: - example.com route: route: - network: 198.51.100.0 prefix: 24 gateway: 192.0.2.10 - network: '2001:db8:2::' prefix: 64 gateway: 2001:db8:1::10 state: up根据它是否已存在,流程使用以下设置创建或更新
enp7s0连接配置文件:-
静态 IPv4 地址 -
192.0.2.1和/24子网掩码 -
静态 IPv6 地址 -
2001:db8:1::1和/64子网掩码 -
IPv4 默认网关 -
192.0.2.254 -
IPv6 默认网关 -
2001:db8:1::fffe -
IPv4 DNS 服务器 -
192.0.2.200 -
IPv6 DNS 服务器 -
2001:db8:1::ffbb -
DNS 搜索域 -
example.com 静态路由:
-
198.51.100.0/24,网关为192.0.2.10 -
2001:db8:2::/64,网关为2001:db8:1::10
-
-
静态 IPv4 地址 -
验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
在受管节点上:
显示 IPv4 路由:
# ip -4 route ... 198.51.100.0/24 via 192.0.2.10 dev enp7s0显示 IPv6 路由:
# ip -6 route ... 2001:db8:2::/64 via 2001:db8:1::10 dev enp7s0 metric 1024 pref medium