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 istpresent.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 diestruesein, wenngateway_ipangegeben ist, andernfallsfalse.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 mitdestination(Zielnetzwerk in CIDR-Codierung) undnexthop(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 istpresent.
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 istpresent.
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 istpresent.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 istingress.ethertype: Optionale Ethertype der Regel, Standard istIPv4.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 istpresent.
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 zumadmin-Projekt und ist nichtsharedoderexternal.access: Der Freigabemodus für das Zielprojekt oder die Zielprojekte. Gültige Optionen sindaccess_as_externalundaccess_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
- Mark Goddard (mark@stackhpc.com)
Role to register networks, subnets and routers in OpenStack
ansible-galaxy install stackhpc.ansible-role-os-networks