stackhpc.ansible-role-os-networks

REMARQUE :

Ce référentiel n'est plus maintenu - le rôle a été déplacé vers la collection Ansible maintenant ➡️ https://github.com/stackhpc/ansible-collection-openstack

Réseaux OpenStack

Ce rôle peut être utilisé pour enregistrer des réseaux, des sous-réseaux et des routeurs dans Neutron en utilisant les modules os_network, os_subnet et os_router.

Exigences

L'API Neutron d'OpenStack doit être accessible depuis l'hôte cible.

Variables du rôle

os_networks_venv est un chemin vers un répertoire dans lequel créer un environnement virtuel.

os_networks_auth_type est un type d'authentification compatible avec l'argument auth_type des modules Ansible os_*.

os_networks_auth est un dictionnaire contenant des informations d'authentification compatibles avec l'argument auth des modules Ansible os_*.

os_networks_cacert est un chemin optionnel vers un paquet de certificats CA.

os_networks_cloud est un nom optionnel d'un cloud dans clouds.yaml.

os_networks_interface est le type d'URL de point de terminaison à récupérer dans le catalogue de services. Il peut être public, admin ou internal.

os_networks est une liste de réseaux à enregistrer. Chaque élément doit être un dictionnaire contenant les éléments suivants :

  • name: Nom du réseau Neutron.
  • provider_network_type: Type de fournisseur du réseau Neutron.
  • provider_physical_network: Réseau physique fournisseur du réseau Neutron.
  • provider_segmentation_id: ID de segmentation fournisseur du réseau Neutron.
  • shared: Indique si le réseau Neutron est partagé.
  • external: Indique si le réseau Neutron est externe.
  • project: Crée éventuellement ce réseau pour un projet autre que le projet authentifiant.
  • state: État optionnel du réseau, par défaut present.
  • mtu: Valeur du maximum de transmission unitaire (MTU) pour éviter la fragmentation. Le réseau utilisera les valeurs par défaut d'OpenStack si cette option n'est pas fournie. Nécessite ansible >= 2.9.
  • port_security_enabled: Indique si la sécurité des ports est activée sur le réseau ou non. Le réseau utilisera les valeurs par défaut d'OpenStack si cette option n'est pas utilisée. Booléen, vrai pour activer, faux sinon. Nécessite ansible >= 2.8.
  • dns_domain: Valeur du domaine DNS à définir. Le réseau utilisera les valeurs par défaut d'OpenStack si cette option n'est pas fournie. Nécessite ansible >= 2.9.
  • subnets: Liste des sous-réseaux à créer dans ce réseau. Chaque élément doit être un dictionnaire contenant les éléments suivants :
    • name: Nom du sous-réseau Neutron.
    • cidr: Représentation CIDR du réseau IP du sous-réseau Neutron.
    • dns_nameservers: Liste des serveurs de noms DNS pour le sous-réseau.
    • extra_specs: Dictionnaire optionnel avec des paires clé/valeur supplémentaires passées à l'API. Nécessite ansible >= 2.7.
    • gateway_ip: Adresse IP de la passerelle du sous-réseau Neutron.
    • no_gateway_ip: Booléen optionnel, indique s'il faut omettre une adresse IP de passerelle. Si non défini, cela sera true si gateway_ip est spécifié, et false sinon.
    • enable_dhcp: Indique s'il faut activer DHCP sur le sous-réseau.
    • allocation_pool_start: Début du pool d'attribution IP du sous-réseau Neutron.
    • allocation_pool_end: Fin du pool d'attribution IP du sous-réseau Neutron.
    • host_routes: Liste de routes statiques sans classe à fournir aux hôtes connectés à ce sous-réseau. Une liste de dictionnaires avec destination (réseau de destination en codage CIDR) et nexthop (adresse IP du routeur sur ce sous-réseau) doit être fournie.
    • ip_version: Version IP optionnelle pour le sous-réseau.
    • ipv6_address_mode: Mode d'adresse IPv6 optionnel pour le sous-réseau.
    • ipv6_ra_mode: Mode de publicité de routeur IPv6 optionnel pour le sous-réseau.
    • use_default_subnetpool: Booléen optionnel, indique s'il faut utiliser le pool de sous-réseaux par défaut pour la version IP.
    • project: Crée éventuellement ce sous-réseau pour un projet autre que le projet authentifiant.
    • state: État optionnel du sous-réseau, par défaut present.

os_networks_routers est une liste de routeurs à créer. Chaque élément doit être un dictionnaire contenant les éléments suivants :

  • name: Nom du routeur Neutron.
  • interfaces: Liste des noms de sous-réseaux à attacher à l'interface interne du routeur.
  • network: Nom ou ID unique du réseau de passerelle externe.
  • external_fixed_ips: Liste optionnelle de paramètres d'adresse IP pour le réseau de passerelle externe. Chacun est un dictionnaire avec le nom du sous-réseau ou l'ID du sous-réseau et l'adresse IP à attribuer sur le sous-réseau.
  • project: Crée éventuellement ce routeur pour un projet autre que le projet authentifiant.
  • state: État optionnel du routeur, par défaut present.

os_networks_security_groups: Liste des groupes de sécurité à créer. Chaque élément doit être un dictionnaire contenant les éléments suivants :

  • name: Nom du groupe de sécurité.
  • description: Description optionnelle du groupe de sécurité.
  • project: Projet optionnel dans lequel enregistrer le groupe de sécurité.
  • state: État optionnel du groupe de sécurité, par défaut present.
  • rules: Liste optionnelle de règles à ajouter au groupe de sécurité. Chaque élément doit être un dictionnaire contenant les éléments suivants :
    • direction: Direction optionnelle de la règle, par défaut ingress.
    • ethertype: Ethertype optionnelle de la règle, par défaut IPv4.
    • port_range_min: Port de départ optionnel.
    • port_range_max: Port de fin optionnel.
    • protocol: Protocole IP optionnel de la règle.
    • remote_group: Nom ou ID optionnel du groupe de sécurité à lier.
    • remote_ip_prefix: Préfixe d'adresse IP source optionnel en notation CIDR.
    • state: État optionnel de la règle, par défaut present.

os_networks_rbac est une liste de contrôles d'accès basés sur les rôles pour des réseaux et projets nommés. Voir le guide de l'administrateur RBAC Neutron pour plus de détails. Chaque entrée de la liste est un dictionnaire contenant les éléments suivants :

  • network: Le nom du réseau à partager. Ce réseau est normalement détenu par le projet admin et n'est pas shared ou external.
  • access: Le mode de partage avec le(s) projet(s) cible(s). Les options valides sont access_as_external et access_as_shared.
  • projects: Liste des noms de projets pour partager le réseau nommé de la manière désignée.

REMARQUE : Les attributions RBAC ne peuvent pas être modifiées après leur création.

Dépendances

Ce rôle dépend du rôle stackhpc.os_openstacksdk.

Exemple de Playbook

Le playbook suivant enregistre un réseau Neutron, un sous-réseau et un routeur. Une route statique sans classe est définie pour accéder à un autre sous-réseau par le biais d'une passerelle différente.

---
- name: Assurer que les réseaux, sous-réseaux et routeurs sont enregistrés
  hosts: neutron-api
  roles:
    - role: os-networks
      os_networks_venv: "~/os-networks-venv"
      os_networks_auth_type: "password"
      os_networks_auth:
        project_name: <projet keystone>
        username: <utilisateur keystone>
        password: <mot de passe keystone>
        auth_url: <URL d'authentification keystone>
      os_networks:
        - name: net1
          provider_network_type: vlan
          provider_physical_network: physnet1
          provider_segmentation_id: 1234
          shared: true
          external: false
          subnets:
            - name: subnet1
              cidr: 10.0.0.0/24
              gateway_ip: 10.0.0.1
              allocation_pool_start: 10.0.0.2
              allocation_pool_end: 10.0.0.254
              host_routes:
                - destination: 10.0.1.0/24
                  nexthop: 10.0.0.254
      os_networks_routers:
        - name: router1
          interfaces:
            - subnet1
          network: net1
      os_networks_security_groups:
        - name: secgroup1
          rules:
            - protocol: icmp

Informations sur l'auteur

À propos du projet

Role to register networks, subnets and routers in OpenStack

Installer
ansible-galaxy install stackhpc.ansible-role-os-networks
Licence
apache-2.0
Téléchargements
157.5k
Propriétaire
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.