stackhpc.ansible-role-os-networks

HINWEIS:

Dieses Repository wird nicht mehr gewartet - die Rolle wurde jetzt zur Ansible-Sammlung verschoben ➡️ https://github.com/stackhpc/ansible-collection-openstack

OpenStack Netzwerke

Diese Rolle kann verwendet werden, um Netzwerke, Subnetze und Router in Neutron mit den Modulen os_network, os_subnet und os_router zu registrieren.

Anforderungen

Die OpenStack Neutron API sollte vom Zielhost aus zugänglich sein.

Rollenvariablen

os_networks_venv ist ein Pfad zu einem Verzeichnis, in dem eine virtuelle Umgebung erstellt werden soll.

os_networks_auth_type ist eine Authentifizierungsmethode, die mit dem Argument auth_type der os_* Ansible-Module kompatibel ist.

os_networks_auth ist ein Wörterbuch, das Authentifizierungsinformationen enthält, die mit dem Argument auth der os_* Ansible-Module kompatibel sind.

os_networks_cacert ist ein optionaler Pfad zu einem CA-Zertifikatbündel.

os_networks_cloud ist ein optionaler Name einer Cloud in clouds.yaml.

os_networks_interface ist der Typ der Endpunkt-URL, der vom Dienstkatalog abgerufen werden soll. Mögliche Werte sind public, admin oder internal.

os_networks ist eine Liste von Netzwerken, die registriert werden sollen. Jedes Element sollte ein Wörterbuch mit den folgenden Elementen sein:

  • name: Name des Neutron-Netzwerks.
  • provider_network_type: Anbieter-Typ des Neutron-Netzwerks.
  • provider_physical_network: Provider physisches Netzwerk des Neutron-Netzwerks.
  • provider_segmentation_id: Anbieter-Segmentierungs-ID des Neutron-Netzwerks.
  • shared: Ob das Neutron-Netzwerk geteilt ist.
  • external: Ob das Neutron-Netzwerk extern ist.
  • project: Optional dieses Netzwerk für ein anderes Projekt als das authentifizierende Projekt erstellen.
  • state: Optionaler Status des Netzwerks, Standard ist present.
  • mtu: Der Wert der maximalen Übertragungsgröße (MTU) zur Behebung von Fragmentierung. Das Netzwerk verwendet die OpenStack-Standardeinstellungen, wenn diese Option nicht angegeben ist. Erfordert Ansible >= 2.9.
  • port_security_enabled: Ob die Portsicherheit auf dem Netzwerk aktiviert ist oder nicht. Das Netzwerk verwendet die OpenStack-Standardeinstellungen, wenn diese Option nicht genutzt wird. Boolescher Wert, true, um zu aktivieren, false sonst. Erfordert Ansible >= 2.8.
  • dns_domain: Der DNS-Domainwert, der festgelegt werden soll. Das Netzwerk verwendet die OpenStack-Standardeinstellungen, wenn diese Option nicht angegeben ist. Erfordert Ansible >= 2.9.
  • subnets: Eine Liste von Subnetzen, die in diesem Netzwerk erstellt werden sollen. Jedes Element sollte ein Wörterbuch mit den folgenden Elementen sein:
    • name: Name des Neutron-Subnetzes.
    • cidr: CIDR-Darstellung des IP-Netzwerks des Neutron-Subnetzes.
    • dns_nameservers: Eine Liste von DNS-Namensservern für das Subnetz.
    • extra_specs: Optionales Wörterbuch mit zusätzlichen Schlüssel/Wert-Paaren, die an die API übergeben werden. Erfordert Ansible >= 2.7.
    • gateway_ip: IP-Adresse des Gateways des Neutron-Subnetzes.
    • no_gateway_ip: Optionaler Boolescher Wert, ob eine Gateway-IP weggelassen werden soll. Wenn nicht gesetzt, wird dies true sein, wenn gateway_ip angegeben ist, andernfalls false.
    • enable_dhcp: Ob DHCP im Subnetz aktiviert werden soll.
    • allocation_pool_start: Beginn des IP-Zuweisungspools des Neutron-Subnetzes.
    • allocation_pool_end: Ende des IP-Zuweisungspools des Neutron-Subnetzes.
    • host_routes: Eine Liste von klassenlosen statischen Routen, die den Hosts zugeordnet werden, die mit diesem Subnetz verbunden sind. Eine Liste von Wörterbüchern mit destination (Zielnetzwerk in CIDR-Codierung) und nexthop (Router-IP in diesem Subnetz) muss bereitgestellt werden.
    • ip_version: Optionale IP-Version für das Subnetz.
    • ipv6_address_mode: Optionaler IPv6-Adressmodus für das Subnetz.
    • ipv6_ra_mode: Optionaler Modus der IPv6-Routeranzeige für das Subnetz.
    • use_default_subnetpool: Optionaler Boolescher Wert, ob der Standard-Subnetzpool für die IP-Version verwendet werden soll.
    • project: Optional dieses Subnetz für ein anderes Projekt als das authentifizierende Projekt erstellen.
    • state: Optionaler Status des Subnetzes, Standard ist present.

os_networks_routers ist eine Liste von Routern, die erstellt werden sollen. Jedes Element sollte ein Wörterbuch mit den folgenden Elementen sein:

  • name: Name des Neutron-Routers.
  • interfaces: Liste von Namen der Subnetze, die an die interne Schnittstelle des Routers angeschlossen werden sollen.
  • network: Eindeutiger Name oder ID des externen Gateway-Netzwerks.
  • external_fixed_ips: Optionale Liste von IP-Adressparametern für das externe Gateway-Netzwerk. Jedes ist ein Wörterbuch mit dem Subnetznamen oder der Subnetz-ID und der IP-Adresse, die im Subnetz zugewiesen werden soll.
  • project: Optional diesen Router für ein anderes Projekt als das authentifizierende Projekt erstellen.
  • state: Optionaler Status des Routers, Standard ist present.

os_networks_security_groups: Liste von Sicherheitsgruppen, die erstellt werden sollen. Jedes Element sollte ein Wörterbuch mit den folgenden Elementen sein:

  • name: Name der Sicherheitsgruppe.
  • description: Optionale Beschreibung der Sicherheitsgruppe.
  • project: Optionales Projekt, in dem die Sicherheitsgruppe registriert werden soll.
  • state: Optionaler Status der Sicherheitsgruppe, Standard ist present.
  • rules: Optionale Liste von Regeln, die zur Sicherheitsgruppe hinzugefügt werden sollen. Jedes Element sollte ein Wörterbuch mit den folgenden Elementen sein:
    • direction: Optionale Richtung der Regel, Standard ist ingress.
    • ethertype: Optionale Ethertype der Regel, Standard ist IPv4.
    • port_range_min: Optionaler Startport.
    • port_range_max: Optionaler Endport.
    • protocol: Optionales IP-Protokoll der Regel.
    • remote_group: Optionaler Name oder ID der Sicherheitsgruppe, die verknüpft werden soll.
    • remote_ip_prefix: Optionales Quell-IP-Adresspräfix in CIDR-Notation.
    • state: Optionaler Status der Regel, Standard ist present.

os_networks_rbac ist eine Liste von rollenbasierten Zugriffskontrollfreigaben für benannte Netzwerke und Projekte. Weitere Informationen finden Sie in der Neutron RBAC-Administrationsanleitung. Jeder Eintrag in der Liste ist ein Wörterbuch mit den folgenden Elementen:

  • network: Der Name des Netzwerks, das freigegeben werden soll. Dieses Netzwerk gehört normalerweise zum admin-Projekt und ist nicht shared oder external.
  • access: Der Freigabemodus für das Zielprojekt oder die Zielprojekte. Gültige Optionen sind access_as_external und access_as_shared.
  • projects: Eine Liste von Projektnamen zur Freigabe des benannten Netzwerks auf die angegebene Weise.

HINWEIS: RBAC-Zuweisungen können nach der Erstellung nicht mehr geändert werden.

Abhängigkeiten

Diese Rolle hängt von der Rolle stackhpc.os_openstacksdk ab.

Beispiel-Playbook

Das folgende Playbook registriert ein Neutron-Netzwerk, Subnetz und Router. Eine klassenlose statische Route wird definiert, um auf ein anderes Subnetz über ein anderes Gateway zuzugreifen.

---
- name: Sicherstellen, dass Netzwerke, Subnetze und Router registriert sind
  hosts: neutron-api
  roles:
    - role: os-networks
      os_networks_venv: "~/os-networks-venv"
      os_networks_auth_type: "password"
      os_networks_auth:
        project_name: <keystone-Projekt>
        username: <keystone-Benutzer>
        password: <keystone-Passwort>
        auth_url: <keystone-Authentifizierungs-URL>
      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

Autoreninformation

Über das Projekt

Role to register networks, subnets and routers in OpenStack

Installieren
ansible-galaxy install stackhpc.ansible-role-os-networks
GitHub Repository
Lizenz
apache-2.0
Downloads
157.5k
Besitzer
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.