19.5. 使用 network RHEL 系统角色配置 VLAN 标记
如果您的网络使用 Virtual Local Area Networks (VLAN)将网络流量分隔到逻辑网络中,请创建一个 NetworkManager 连接配置文件来配置 VLAN 标记。通过使用 Ansible 和 network
RHEL 系统角色,您可以在 playbook 中定义的主机上自动化这个过程,并远程配置连接配置集。
您可以使用 network
RHEL 系统角色配置 VLAN 标记,如果 VLAN 的父设备的连接配置文件不存在,则角色也可以创建 VLAN。
如果 VLAN 设备需要 IP 地址、默认网关和 DNS 设置,请在 VLAN 设备上配置它们,而不需要在父设备上配置。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
步骤
创建包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Configure the network hosts: managed-node-01.example.com tasks: - name: VLAN connection profile with Ethernet port ansible.builtin.include_role: name: rhel-system-roles.network vars: network_connections: # Ethernet profile - name: enp1s0 type: ethernet interface_name: enp1s0 autoconnect: yes state: up ip: dhcp4: no auto6: no # VLAN profile - name: enp1s0.10 type: vlan vlan: id: 10 ip: dhcp4: yes auto6: yes parent: enp1s0 state: up
示例 playbook 中指定的 e 设置包括:
type: & lt;profile_type>
- 设置要创建的配置集的类型。示例 playbook 创建两个连接配置集:一个用于父以太网设备,另一个用于 VLAN 设备。
dhcp4: < ;value>
-
如果设置为
yes
,则从 DHCP、PPP 或类似服务自动分配 IPv4 地址分配。禁用父设备上的 IP 地址配置。 auto6: < ;value>
-
如果设置为
yes
,则启用 IPv6 自动配置。在这种情况下,NetworkManager 使用路由器公告,如果路由器宣布受管
标志,NetworkManager 会从 DHCPv6 服务器请求 IPv6 地址和前缀。禁用父设备上的 IP 地址配置。 parent: & lt;parent_device>
- 设置 VLAN 连接配置集的父设备。在示例中,父进程是以太网接口。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
验证 VLAN 设置:
# ansible managed-node-01.example.com -m command -a 'ip -d addr show enp1s0.10' managed-node-01.example.com | CHANGED | rc=0 >> 4: vlan10@enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:72:2f:6e brd ff:ff:ff:ff:ff:ff promiscuity 0 vlan protocol 802.1Q id 10 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 ...
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.network/README.md
文件 -
/usr/share/doc/rhel-system-roles/network/
directory