4.3. 自定义网络接口示例
以下示例演示了如何使用模板为 OpenShift (RHOSO)环境中的 Red Hat OpenStack Services 自定义网络接口。
Example
此模板示例配置与 OVS 网桥独立的控制组。该模板使用五个网络接口,并将多个标记的 VLAN 设备分配到编号的接口。在 nic2 和 nic3 上,模板为 control plane 流量创建一个 linux 绑定。模板在 nic4 和 nic5 上为 RHOSO 数据平面创建 OVS 网桥。
edpm_network_config_os_net_config_mappings:
edpm-compute-0:
dmiString: system-serial-number
id: 3V3J4V3
nic1: ec:2a:72:40:ca:2e
nic2: 6c:fe:54:3f:8a:00
nic3: 6c:fe:54:3f:8a:01
nic4: 6c:fe:54:3f:8a:02
nic5: 6c:fe:54:3f:8a:03
nic6: e8:eb:d3:33:39:12
nic7: e8:eb:d3:33:39:13
edpm_network_config_template: |
---
{% set mtu_list = [ctlplane_mtu] %}
{% for network in nodeset_networks %}
{{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
{%- endfor %}
{% set min_viable_mtu = mtu_list | max %}
- type: interface
name: nic1
use_dhcp: false
use_dhcpv6: false
type: linux_bond
name: bond_api
use_dhcp: false
use_dhcpv6: false
bonding_options: "mode=active-backup"
dns_servers: {{ ctlplane_dns_nameservers }}
addresses:
ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
routes:
- default: true
next_hop: 192.168.122.1
members:
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
{% for network in nodeset_networks if network not in ['external', 'tenant'] %}
- type: vlan
mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
device: bond_api
addresses:
- ip_netmask: {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
{% endfor %}
- type: ovs_bridge
name: br-access
use_dhcp: false
use_dhcpv6: false
members:
- type: linux_bond
name: bond_data
mtu: {{ min_viable_mtu }}
bonding_options: "mode=active-backup"
members:
- type: interface
name: nic4
- type: interface
name: nic5
- type: vlan
vlan_id: {{ lookup('vars', networks_lower['tenant'] ~ '_vlan_id') }}
mtu: {{ lookup('vars', networks_lower['tenant'] ~ '_mtu') }}
device: bond_data
addresses:
- ip_netmask:
{{ lookup('vars', networks_lower['tenant'] ~ '_ip') }}/{{ lookup('vars', networks_lower['tenant'] ~ '_cidr') }}
routes: {{ lookup('vars', networks_lower['tenant'] ~ '_host_routes') }}
edpm_network_config_os_net_config_mappings:
edpm-compute-0:
dmiString: system-serial-number
id: 3V3J4V3
nic1: ec:2a:72:40:ca:2e
nic2: 6c:fe:54:3f:8a:00
nic3: 6c:fe:54:3f:8a:01
nic4: 6c:fe:54:3f:8a:02
nic5: 6c:fe:54:3f:8a:03
nic6: e8:eb:d3:33:39:12
nic7: e8:eb:d3:33:39:13
edpm_network_config_template: |
---
{% set mtu_list = [ctlplane_mtu] %}
{% for network in nodeset_networks %}
{{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
{%- endfor %}
{% set min_viable_mtu = mtu_list | max %}
- type: interface
name: nic1
use_dhcp: false
use_dhcpv6: false
type: linux_bond
name: bond_api
use_dhcp: false
use_dhcpv6: false
bonding_options: "mode=active-backup"
dns_servers: {{ ctlplane_dns_nameservers }}
addresses:
ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
routes:
- default: true
next_hop: 192.168.122.1
members:
- type: interface
name: nic2
primary: true
- type: interface
name: nic3
{% for network in nodeset_networks if network not in ['external', 'tenant'] %}
- type: vlan
mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
device: bond_api
addresses:
- ip_netmask: {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
{% endfor %}
- type: ovs_bridge
name: br-access
use_dhcp: false
use_dhcpv6: false
members:
- type: linux_bond
name: bond_data
mtu: {{ min_viable_mtu }}
bonding_options: "mode=active-backup"
members:
- type: interface
name: nic4
- type: interface
name: nic5
- type: vlan
vlan_id: {{ lookup('vars', networks_lower['tenant'] ~ '_vlan_id') }}
mtu: {{ lookup('vars', networks_lower['tenant'] ~ '_mtu') }}
device: bond_data
addresses:
- ip_netmask:
{{ lookup('vars', networks_lower['tenant'] ~ '_ip') }}/{{ lookup('vars', networks_lower['tenant'] ~ '_cidr') }}
routes: {{ lookup('vars', networks_lower['tenant'] ~ '_host_routes') }}