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 diestrue
sein, wenngateway_ip
angegeben 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 nichtshared
oderexternal
.access
: Der Freigabemodus für das Zielprojekt oder die Zielprojekte. Gültige Optionen sindaccess_as_external
undaccess_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