Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configuration de l’Overcloud pour RHOSP 17.1

Cette procédure permet de configurer l’overcloud pour un déploiement de Contrail Networking sur RHOSP 17.1.

Télécharger les modèles de chaleur

  1. SSH dans l’undercloud en tant qu’utilisateur de la pile.
  2. Fournissez le fichier d’informations d’identification stackrc undercloud.
  3. Placez tous les modèles heat dans un nouveau répertoire ~/tripleo-heat-templates.
    1. Copiez les modèles Red Hat TripleO heat dans le répertoire ~/tripleo-heat-templates.
    2. Téléchargez la version 21.4.L4.1 de Contrail Networking RHEL 9 + RHOSP17 OOO Heat Templates à partir du site de téléchargement de logiciels Juniper Networks et copiez-les dans le même répertoire ~/tripleo-heat-templates.

Télécharger des images de conteneur dans le registre Undercloud

Utilisez cet exemple de procédure sur l’undercloud pour charger des images de conteneur overcloud dans le registre undercloud.

  1. SSH dans l’undercloud en tant qu’utilisateur de la pile.
  2. Fournissez le fichier d’informations d’identification stackrc undercloud.
  3. Créez un fichier ~/tripleo-heat-templates/environments/contrail/rhsm.yaml avec vos identifiants Red Hat.
    Voici un exemple de celui que nous utilisons.
  4. Extrayez les images de conteneur des registres distants et envoyez-les vers le registre undercloud.
    Les images de conteneur OpenStack sont disponibles à partir du registre Red Hat et les images de conteneur Contrail sont disponibles à partir du registre Juniper Networks.
    1. Extrayez les images de registry.redhat.io conteneur Red Hat OpenStack et transférez-les vers le registre undercloud.
      1. Créez le fichier conteneur OpenStack.

        Cela produit le fichier ~/tripleo-heat-templates/environments/contrail/overcloud-containers.yaml .

      2. Extrayez les images du conteneur et envoyez-les vers le registre undercloud.

    2. Extrayez les images du conteneur Contrail à partir de enterprise-hub.juniper.net.

      Modifiez le ~/tripleo-heat-templates/tools/contrail/import_contrail_container.sh avec la destination push appropriée pour votre déploiement. Recherchez la ligne de destination du push et modifiez l’adresse IP. Par exemple:

      Tirez les conteneurs Contrail : <username> et <password> sont vos identifiants de connexion au enterprise-hub.juniper.net registre.
    3. Envoyez les images de conteneur au registre undercloud.
    4. Répertoriez les conteneurs téléchargés.
      Les images de conteneur sont servies à partir du répertoire /var/lib/image-serve.

Provisionner des réseaux overcloud

  1. SSH dans l’undercloud en tant qu’utilisateur de la pile.
  2. Fournissez le fichier d’informations d’identification stackrc undercloud.
  3. Créez le fichier de définition de réseau network_data.yaml qui décrit nos réseaux.
    Le tableau 1 montre la configuration réseau qui correspond aux figures 1 et 2 de notre exemple.
    ,
    Tableau 1 : configuration du réseau
    VLAN réseaupasserelle de sous-réseau
    internal_api 710 192.168.4.0/24 192.168.4.1
    gestion 10.102.70.0/24 10.102.70.1
    stockage 740 192.168.2.0/24 192.168.2.1
    storage_mgmt 750 192.168.3.0/24 192.168.3.1
    locataire 192.168.33.0/24 192.168.33.1
    externe 720 10.204.17.0/24 10.204.17.1

    Voici le fichier network_data.yaml qui en résulte.

  4. Placez le fichier de définition du réseau dans ~/tripleo-heat-templates/environments/contrail/network_data.yaml et appliquez-le.
    Cela produit le fichier ~/tripleo-heat-templates/environments/contrail/overcloud-networks-deployed.yaml.
  5. Créez le fichier de définition d’adresses IP virtuelles de réseau vip_data.yaml qui décrit les adresses IP virtuelles de réseau dans notre réseau.

    Voici le fichier vip_data.yaml pour notre exemple.

  6. Placez le fichier de définition VIP dans ~/tripleo-heat-templates/environments/contrail/vip_data.yaml et appliquez-le.
    Cela produit le fichier ~/tripleo-heat-templates/environments/contrail/overcloud-vip-deployed.yaml.
  7. Vérifiez les réseaux et sous-réseaux créés.

Provisionner des nœuds overcloud bare metal

  1. SSH dans l’undercloud en tant qu’utilisateur de la pile.
  2. Fournissez le fichier d’informations d’identification stackrc undercloud.
  3. Créez le fichier de définition de nœud overcloud ~/nodes.json qui décrit les nœuds de notre réseau overcloud.
    • Trois nœuds de contrôleur OpenStack (contrôleur-0, contrôleur-1, contrôleur-2)

    • Trois nœuds de contrôleur Contrail (contrail-controller-0, contrail-controller-1, contrail-controller-2)

    • Un nœud de calcul (compute-0)

    Ce fichier est spécifique à votre déploiement. Reportez-vous à la documentation Red Hat pour plus d’informations sur la création et le remplissage de ce fichier.
  4. Importez les noeuds dans le directeur.
    Répertoriez les nœuds pour vous assurer qu’ils ont été importés :
  5. Introspectez les nœuds.
    Introspection recueille des informations matérielles sur chaque nœud. Une fois l’introspection terminée, tous les noeuds passent à l’état disponible.
  6. Créez le fichier de définition de nœud overcloud-baremetal-deploy.yaml et définissez le nombre de nœuds pour chaque rôle que vous souhaitez provisionner. Placez le fichier dans ~/tripleo-heat-templates/environments/contrail/overcloud-baremetal-deploy.yaml.
    Voici le fichier de définition de noeud pour notre exemple :
  7. Provisionnez les nœuds overcloud.
    Cela produit le fichier ~/tripleo-heat-templates/environments/contrail/overcloud-baremetal-deployed.yaml.
  8. Vérifiez que l’état du nœud est actif.
  9. Trouvez l’adresse IP de chaque nœud overcloud.
  10. Enregistrez chaque nœud overcloud.
    1. SSH dans un nœud overcloud à partir du sous-cloud.
      <overcloud-node-ip> est l’adresse IP de l’un des nœuds overcloud.
    2. Enregistrez le noeud.
      Saisissez votre nom d’utilisateur et votre mot de passe Red Hat lorsque vous y êtes invité.
    3. Définissez la version sur RHEL 9.2.
    4. Désactivez tous les référentiels par défaut et activez les référentiels RHEL 9.2 requis.
      Note: Vous devrez peut-être attacher manuellement un pool avant de pouvoir exécuter cette commande si votre licence n’autorise pas l’attribution automatique. Voir la documentation Red Hat.
    5. Répétez l’opération sur tous les nœuds de l’overcloud.
  11. Installez la collection ansible community.general sur chaque nœud overcloud.
    1. SSH dans un nœud overcloud à partir du sous-cloud.
      <overcloud-node-ip> est l’adresse IP de l’un des nœuds overcloud.
    2. Installez la collection ansible community.general en tant qu’utilisateur sudo et utilisateur régulier.
    3. Répétez l’opération sur tous les nœuds de l’overcloud.

Configurer Contrail

Nous fournissons différents fichiers de configuration dans le package Contrail Networking Heat Templates pour vous permettre de personnaliser votre déploiement overcloud. Le tableau 2 décrit les fichiers que vous devez configurer dans notre exemple.

Tableau 2 : fichiers de configuration
Description du fichier
roles_data.yaml Description des différents rôles de noeud
contrôleur contrail-nic-config.j2 Description des interfaces sur les contrôleurs OpenStack
contrail-nic-config-ContrailController.j2 Description des interfaces sur les contrôleurs Contrail
contrail-nic-config-ComputeKernel.j2 Description des interfaces sur le nœud de calcul s’exécutant en mode noyau
contrail-net.yaml Description des différents paramètres du réseau Contrail
services-contrail.yaml Description des services Contrail
plugins-contrail.yaml Paramètres divers
Note: Vous trouverez des exemples des fichiers ci-dessus sous des noms comparables dans le package Contrail Networking Heat Templates que vous avez téléchargé. Notre exemple, cependant, suppose que vous utiliserez les noms de fichiers comme indiqué ci-dessus.

Configuration des rôles (roles_data.yaml)

Le fichier de configuration des rôles contient les définitions des différents rôles de nœud. Vous pouvez trouver des exemples de fichiers de rôles Contrail dans ~/tripleo-heat-templates et dans ~/tripleo-heat-templates/roles.

Dans notre exemple, nous définissons trois rôles. Placez les trois rôles dans le fichier roles_data.yaml et placez-le dans ~/tripleo-heat-templates/environments/contrail/roles_data.yaml.

Rôle du contrôleur OpenStack

Dans notre exemple, nous avons trois nœuds pour le contrôleur OpenStack. Chacun de ces nœuds se connecte aux réseaux de gestion, d’API interne, de gestion, de stockage, de gestion du stockage et externes, comme indiqué ci-dessous :

Rôle du contrôleur Contrail

Nous avons également trois nœuds pour le contrôleur Contrail. Chacun de ces nœuds se connecte aux réseaux de gestion, d’API interne, externes et de locataires, comme indiqué ci-dessous :

Rôle de nœud de calcul

Nous avons un nœud de calcul. Le nœud de calcul se connecte aux réseaux de gestion, d’API interne, de stockage et de locataires, comme illustré ci-dessous.

Configuration de l’interface réseau (*-nic-*.j2)

Les fichiers de configuration de la carte réseau décrivent les interfaces de chaque rôle. Vous trouverez des exemples de fichiers de configuration de carte réseau dans ~/tripleo-heat-templates/network/config/contrail et ~/tripleo-heat-templates/network/config/contrail/examples.

Note: Les fichiers de configuration de la carte réseau sont référencés dans overcloud-baremetal-deploy.yaml. Assurez-vous de nommer correctement les fichiers de configuration et de les placer dans ~/tripleo-heat-templates/environments/contrail.

Dans notre exemple, nous définissons trois cartes réseau (une pour chaque rôle), comme le montre le tableau 3.

Tableau 3 : mappage des cartes réseau
Noeuds, Interfaces , Réseaux
Contrôleur OpenStack ENP1S0 gestion
ENP2S0 plan de contrôle
  • externe

  • internal_api

  • storage_mgmt

  • stockage

Contrôleur Contrail ENP1S0 gestion
ENP2S0 plan de contrôle
  • externe

  • internal_api

ENP3S0 locataire
Calculer ENP1S0 gestion
ENP2S0 plan de contrôle
  • internal_api

  • stockage

ENP3S0 locataire

Carte réseau du contrôleur OpenStack (contrail-nic-config-Controller.j2)

Carte réseau du contrôleur Contrail (contrail-nic-config-ContrailController.j2)

Carte réseau du nœud de calcul (contrail-nic-config-Compute.j2)

Configuration des paramètres réseau (contrail-net.yaml)

Personnalisez les paramètres du réseau Contrail en modifiant le fichier contrail-net.yaml . Nous fournissons un exemple à l’adresse ~/tripleo-heat-templates/environments/contrail/contrail-net.yaml. Parcourez ce fichier pour obtenir des explications sur les paramètres.

Voici le fichier contrail-net.yaml pour notre exemple.

Service Contrail avec modèles (contrail-services.yaml)

Personnalisez les services Contrail pour votre réseau en modifiant le fichier contrail-services.yaml . Nous fournissons un exemple à l’adresse ~/tripleo-heat-templates/environments/contrail/contrail-services.yaml. Parcourez ce fichier pour obtenir des explications sur les paramètres.

Voici le fichier contrail-services.yaml pour notre exemple.

Remarque : APPLY_DEFAULTS

Lorsque Contrail est déployé pour la première fois, la valeur par défaut de APPLY_DEFAULTS paramètre dans la section ContrailDefaults doit être définie sur « True ». Cela permet aux paramètres d’approvisionnement présents dans le modèle d’utiliser la configuration day0 chaque fois qu’un conteneur de provisionnement de configuration est redémarré. Par conséquent, les paramètres d’approvisionnement sont pilotés par des modèles et toute modification des paramètres Contrail doit être effectuée par le biais de modèles TripleO.

Contrail Networking vous permet de configurer certains paramètres de configuration globale tels que le mode d’identification du réseau VXLAN, la configuration linklocale, la configuration du maillage automatique IBGP, l’activation de 4byte_AS et la modification de l’ASN BGP Global via son interface utilisateur Web. Si vous souhaitez gérer votre cluster via l’interface utilisateur Web, vous devez définir APPLY_DEFAULTS=False dans la section ContrailDefaults et déployer à nouveau votre cluster en exécutant openstack overcloud deploy. Cette étape supplémentaire est nécessaire, car lorsque vous avez modifié les paramètres de configuration globale de Contrail via l’interface utilisateur Web, il est possible que ces paramètres de configuration globale soient écrasés si un conteneur de provisionnement de configuration est redémarré. Afin d’éviter que ces valeurs ne soient écrasées, définissez APPLY_DEFAULTS sur 'False' et déployez à nouveau Contrail en exécutant la commande openstack overcloud deploy. Par conséquent, les paramètres de configuration globaux restent inchangés car le provisionnement n’est pas exécuté à nouveau.

Par exemple, si vous définissez APPLY_DEFAULTS=False via le modèle TripleO, déployez votre cluster Contrail, définissez VxLAN Identifier Mode sur « User Configured » (Configuré par l’utilisateur) à partir de l’interface utilisateur Web et redémarrez le conteneur du provisionneur de configuration, puis le mode d’identificateur VxLAN reste « Configuré par l’utilisateur » après le redémarrage du conteneur du provisionneur de configuration. Au contraire, si APPLY_DEFAULTS est défini sur True, après le redémarrage du conteneur du provisionneur de configuration, le mode d’identificateur VxLAN passe à sa valeur par défaut, qui est Automatique.

Par exemple, si vous définissez APPLY_DEFAULTS=False via le modèle TripleO, déployez votre cluster Contrail, définissez VxLAN Identifier Mode sur « User Configured » (Configuré par l’utilisateur) à partir de l’interface utilisateur Web et redémarrez le conteneur du provisionneur de configuration, puis le mode d’identificateur VxLAN reste « Configuré par l’utilisateur » après le redémarrage du conteneur du provisionneur de configuration. Au contraire, si APPLY_DEFAULTS est défini sur True, après le redémarrage du conteneur du provisionneur de configuration, le mode d’identificateur VxLAN prend sa valeur par défaut, qui est Automatique.

Plugins Contrail (contrail-plugins.yaml)

Le fichier plug-ins Contrail contient divers paramètres et fait référence à de nombreux autres fichiers utilisés par Contrail. Il se trouve à l’adresse ~/tripleo-heat-templates/environments/contrail/contrail-plugins.yaml.

Ne modifiez pas ce fichier et ne modifiez pas l’emplacement des fichiers référencés.

Création de l’Overcloud

  1. Localisez les fichiers d’environnement que vous avez créés au cours des procédures précédentes.
  2. Déployez l’overcloud.
    Vérifiez que les fichiers référencés ci-dessous se trouvent aux emplacements spécifiés.
Vous avez maintenant installé Contrail dans RHOSP 17.1 dans notre exemple de déploiement.

Configuration avancée

Contrail Networking fournit un riche ensemble de fonctionnalités qui vont au-delà de notre exemple de base. Les sections suivantes contiennent d’autres exemples de configuration YAML qui peuvent s’appliquer à votre déploiement. Cette configuration supplémentaire n’a rien à voir avec notre exemple.

Avant de les utiliser, convertissez ces exemples YAML au format Jinja2. Consultez la documentation Red Hat pour plus d’informations sur cette procédure.

Configuration avancée du mode noyau vRouter

En plus de la configuration standard de la carte réseau, le mode noyau du vRouter prend en charge les modes VLAN, Bond et Bond + VLAN. Les extraits de configuration ci-dessous n’affichent que la section correspondante de la configuration du modèle de carte réseau pour chaque mode.

Tableau 4 : types d’interfaces avancés (mode noyau)
Types d’interfaces Exemple de configuration
VLAN (en anglais)
- name: enp2s0
  type: interface
  use_dhcp: false
- type: vlan
  device: enp2s0
  vlan_id: {{ tenant_vlan_id }}
  use_dhcp: false
- name: vhost0
  type: contrail_vrouter
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: vlan{{ tenant_vlan_id }}
    type: interface
    use_dhcp: false
  mtu: 1500
  use_dhcp: false
Obligation
- name: bond0
  type: linux_bond
  bonding_options: mode=4 xmit_hash_policy=layer2+3
  use_dhcp: false
  members:
  - type: interface
    name: enp2s0
  - type: interface
    name: enp3s0
- name: vhost0
  type: contrail_vrouter
  mtu: 1500
  use_dhcp: false
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: bond0
    type: interface
    use_dhcp: false
Liaison + VLAN
- name: bond0
  type: linux_bond
  bonding_options: mode=4 xmit_hash_policy=layer2+3
  use_dhcp: false
  members:
  - type: interface
    name: enp2s0
  - type: interface
    name: enp3s0
- device: bond0
  type: vlan
  vlan_id: {{ tenant_vlan_id }}
  use_dhcp: false
- name: vhost0
  type: contrail_vrouter
  mtu: 1500
  use_dhcp: false
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: vlan{{ tenant_vlan_id }}
    type: interface
    use_dhcp: false

Configuration avancée du mode DPDK vRouter

En plus de la configuration standard de la carte réseau, le mode DPDK du vRouter prend en charge les modes Standard, VLAN, Bond et Bond + VLAN.

Configuration de l’environnement réseau :

Activez le nombre de pages huge :

Reportez-vous aux configurations de modèle de carte réseau suivantes pour le mode vRouter DPDK. Les extraits de configuration ci-dessous n’affichent que la section correspondante de la configuration de la carte réseau pour chaque mode.

Tableau 5 : Types d’interfaces avancés (DPDK)
Types d’interfaces Exemple de configuration
Standard
- name: vhost0
  type: contrail_vrouter_dpdk
  driver: uio_pci_generic
  cpu_list: 0x01
  mtu: 1500
  use_dhcp: false
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: enp2s0
    type: interface
    use_dhcp: false
VLAN (en anglais)
- name: vhost0
  type: contrail_vrouter_dpdk
  driver: uio_pci_generic
  cpu_list: 0x01
  mtu: 1500
  use_dhcp: false
  vlan_id: {{ tenant_vlan_id }}
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: enp2s0
    type: interface
    use_dhcp: false
Obligation
- name: vhost0
  type: contrail_vrouter_dpdk
  driver: uio_pci_generic
  cpu_list: 0x01
  mtu: 1500
  use_dhcp: false
  bond_mode: 4
  bond_policy: layer2+3
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: enp2s0
    type: interface
    use_dhcp: false
  - name: enp3s0
    type: interface
    use_dhcp: false
Liaison + VLAN
- name: vhost0
  type: contrail_vrouter_dpdk
  driver: uio_pci_generic
  cpu_list: 0x01
  mtu: 1500
  use_dhcp: false
  bond_mode: 4
  bond_policy: layer2+3
  vlan_id: {{ tenant_vlan_id }}
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: enp2s0
    type: interface
    use_dhcp: false
  - name: enp3s0
    type: interface
    use_dhcp: false

Configuration avancée du mode noyau SRIOV + vRouter

Le mode vRouter SRIOV + Kernel peut être utilisé dans les combinaisons suivantes :

  • Standard

  • VLAN (en anglais)

  • Obligation

  • Liaison + VLAN

Configuration de l’environnement réseau :

Activez le nombre de pages huge :

Réglages SRIOV PF/VF :

Les cartes réseau SRIOV ne sont pas configurées dans les modèles de cartes réseau. Toutefois, les cartes réseau vRouter doivent toujours être configurées. Reportez-vous aux configurations de modèles de carte réseau suivantes pour le mode noyau vRouter. Les extraits de configuration ci-dessous n’affichent que la section correspondante de la configuration de la carte réseau pour chaque mode.

Tableau 6 : types d’interfaces (SR-IOV + mode noyau)
Types d’interfaces Exemple de configuration
   
VLAN (en anglais)
- name: ens2f1
  type: interface
  use_dhcp: false
- type: vlan
  device: ens2f1
  vlan_id: {{ tenant_vlan_id }}
  use_dhcp: false
- name: vhost0
  type: contrail_vrouter
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: vlan{{ tenant_vlan_id }}
    type: interface
    use_dhcp: false
  mtu: 1500
  use_dhcp: false
Obligation
- name: bond0
  type: linux_bond
  bonding_options: mode=4 xmit_hash_policy=layer2+3
  use_dhcp: false
  members:
  - type: interface
    name: ens2f1
  - type: interface
    name: ens3f1
- name: vhost0
  type: contrail_vrouter
  mtu: 1500
  use_dhcp: false
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: bond0
    type: interface
    use_dhcp: false
Liaison + VLAN
- name: bond0
  type: linux_bond
  bonding_options: mode=4 xmit_hash_policy=layer2+3
  use_dhcp: false
  members:
  - type: interface
    name: ens2f1
  - type: interface
    name: ens3f1
- device: bond0
  type: vlan
  vlan_id: {{ tenant_vlan_id }}
  use_dhcp: false
- name: vhost0
  type: contrail_vrouter
  mtu: 1500
  use_dhcp: false
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: vlan{{ tenant_vlan_id }}
    type: interface
    use_dhcp: false

Configuration avancée du mode vRouter SRIOV + DPDK

Utilisez vRouter SRIOV + DPDK dans les combinaisons suivantes :

  • Standard

  • VLAN (en anglais)

  • Obligation

  • Liaison + VLAN

Configuration de l’environnement réseau :

Activer le nombre de pages hugepages

Réglages SRIOV PF/VF

Les cartes réseau SRIOV ne sont pas configurées dans les modèles de cartes réseau. Toutefois, les cartes réseau vRouter doivent toujours être configurées. Reportez-vous aux configurations de modèle de carte réseau suivantes pour le mode vRouter DPDK. Les extraits de configuration ci-dessous n’affichent que la section correspondante de la configuration de la carte réseau pour chaque mode.

Tableau 7 : types d’interfaces (SR-IOV + DPDK)
Types d’interfaces Exemple de configuration
Standard
- name: vhost0
  type: contrail_vrouter_dpdk
  driver: uio_pci_generic
  cpu_list: 0x01
  mtu: 1500
  use_dhcp: false
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: ens2f1
    type: interface
    use_dhcp: false
VLAN (en anglais)
- name: vhost0
  type: contrail_vrouter_dpdk
  driver: uio_pci_generic
  cpu_list: 0x01
  mtu: 1500
  use_dhcp: false
  vlan_id: {{ tenant_vlan_id }}
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: ens2f1
    type: interface
    use_dhcp: false
Obligation
- name: vhost0
  type: contrail_vrouter_dpdk
  driver: uio_pci_generic
  cpu_list: 0x01
  mtu: 1500
  use_dhcp: false
  bond_mode: 4
  bond_policy: layer2+3
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: ens2f1
    type: interface
    use_dhcp: false
  - name: ens2f1
    type: interface
    use_dhcp: false
Liaison + VLAN
- name: vhost0
  type: contrail_vrouter_dpdk
  driver: uio_pci_generic
  cpu_list: 0x01
  mtu: 1500
  use_dhcp: false
  bond_mode: 4
  bond_policy: layer2+3
  vlan_id: {{ tenant_vlan_id }}
  addresses:
  - ip_netmask: {{ tenant_ip }}/{{ tenant_cidr }}
  members:
  - name: ens2f1
    type: interface
    use_dhcp: false
  - name: ens3f1
    type: interface
    use_dhcp: false