stackhpc.ansible-role-os-networks
UWAGA:
To repo nie jest już utrzymywane - rola została przeniesiona do kolekcji Ansible teraz ➡️ https://github.com/stackhpc/ansible-collection-openstack
Sieci OpenStack
Ta rola może być używana do rejestrowania sieci, podsieci i routerów w neutronie za pomocą modułów os_network, os_subnet i os_router.
Wymagania
API OpenStack neutron powinno być dostępne z hosta docelowego.
Zmienne roli
os_networks_venv to ścieżka do katalogu, w którym ma być utworzony virtualenv.
os_networks_auth_type to typ autoryzacji kompatybilny z argumentem
auth_type modułów Ansible os_*.
os_networks_auth to słownik zawierający informacje o autoryzacji
kompatybilny z argumentem auth modułów Ansible os_*.
os_networks_cacert to opcjonalna ścieżka do pakietu certyfikatów CA.
os_networks_cloud to opcjonalna nazwa chmury w clouds.yaml.
os_networks_interface to typ URL końcowego do pobierania z katalogu usług.
Może być jednym z public, admin lub internal.
os_networks to lista sieci do zarejestrowania. Każdy element powinien być
słownikiem zawierającym następujące elementy:
name: Nazwa sieci neutron.provider_network_type: Typ dostawcy sieci neutron.provider_physical_network: Fizyczna sieć dostawcy sieci neutron.provider_segmentation_id: ID segmentacji dostawcy sieci neutron.shared: Czy sieć neutron jest udostępniona.external: Czy sieć neutron jest zewnętrzna.project: Opcjonalnie utwórz tę sieć dla projektu innego niż projekt autoryzujący.state: Opcjonalny stan sieci, domyślniepresent.mtu: Maksymalna jednostka transmisji (MTU) do adresowania fragmentacji. Sieć użyje domyślnych wartości OpenStack, jeśli ta opcja nie jest podana. Wymaga ansible >= 2.9.port_security_enabled: Czy bezpieczeństwo portów jest włączone w sieci. Sieć użyje domyślnych wartości OpenStack, jeśli ta opcja nie jest używana. Boolean, true do włączenia, false w przeciwnym razie. Wymaga ansible >= 2.8.dns_domain: Wartość domeny DNS do ustawienia. Sieć użyje domyślnych wartości OpenStack, jeśli ta opcja nie jest podana. Wymaga ansible >= 2.9.subnets: Lista podsieci do utworzenia w tej sieci. Każdy element powinien być słownikiem zawierającym następujące elementy:name: Nazwa podsieci neutron.cidr: Reprezentacja CIDR sieci IP podsieci neutron.dns_nameservers: Lista serwerów nazw DNS dla podsieci.extra_specs: Opcjonalny słownik z dodatkowymi parametrami przekazywanymi do API. Wymaga ansible >= 2.7.gateway_ip: Adres IP bramy dla podsieci neutron.no_gateway_ip: Opcjonalny boolean, czy pominąć adres IP bramy. Jeśli nie ustawione, będzietrue, jeśligateway_ipjest podany, afalsew przeciwnym razie.enable_dhcp: Czy włączyć DHCP w podsieci.allocation_pool_start: Początek puli alokacji IP podsieci neutron.allocation_pool_end: Koniec puli alokacji IP podsieci neutron.host_routes: Lista statycznych tras bezklasowych do dostarczenia do hostów podłączonych do tej podsieci. Należy dostarczyć listę słowników zdestination(docelowa sieć w kodowaniu CIDR) inexthop(adres IP routera w tej podsieci).ip_version: Opcjonalna wersja IP dla podsieci.ipv6_address_mode: Opcjonalny tryb adresowania IPv6 dla podsieci.ipv6_ra_mode: Opcjonalny tryb ogłoszeń routerów IPv6 dla podsieci.use_default_subnetpool: Opcjonalny boolean, czy używać domyślnej puli podsieci dla wersji IP.project: Opcjonalnie utwórz tę podsieć dla projektu innego niż projekt autoryzujący.state: Opcjonalny stan podsieci, domyślniepresent.
os_networks_routers to lista routerów do utworzenia. Każdy element powinien być
słownikiem zawierającym następujące elementy:
name: Nazwa routera neutron.interfaces: Lista nazw podsieci do podłączenia do wewnętrznego interfejsu routera.network: Unikalna nazwa lub ID zewnętrznej sieci bramy.external_fixed_ips: Opcjonalna lista parametrów adresów IP dla zewnętrznej sieci bramy. Każdy to słownik z nazwą podsieci lub ID podsieci oraz adresem IP do przypisania w podsieci.project: Opcjonalnie utwórz ten router dla projektu innego niż projekt autoryzujący.state: Opcjonalny stan routera, domyślniepresent.
os_networks_security_groups: Lista grup bezpieczeństwa do utworzenia.
Każdy element powinien być słownikiem zawierającym następujące elementy:
name: Nazwa grupy bezpieczeństwa.description: Opcjonalny opis grupy bezpieczeństwa.project: Opcjonalny projekt, w którym zarejestrować grupę bezpieczeństwa.state: Opcjonalny stan grupy bezpieczeństwa, domyślniepresent.rules: Opcjonalna lista reguł do dodania do grupy bezpieczeństwa. Każdy element powinien być słownikiem zawierającym następujące elementy:direction: Opcjonalny kierunek reguły, domyślnieingress.ethertype: Opcjonalny typ eteru reguły, domyślnieIPv4.port_range_min: Opcjonalny początkowy port.port_range_max: Opcjonalny końcowy port.protocol: Opcjonalny protokół IP reguły.remote_group: Opcjonalna nazwa lub ID grupy bezpieczeństwa do powiązania.remote_ip_prefix: Opcjonalny prefiks adresu IP źródłowego w notacji CIDR.state: Opcjonalny stan reguły, domyślniepresent.
os_networks_rbac to lista kontrolnych dostępu opartych na rolach
dla nazwanych sieci i projektów. Zobacz przewodnik administracyjny RBAC Neutron
po szczegóły. Każdy wpis na liście to słownik zawierający następujące elementy:
network: Nazwa sieci do udostępnienia. Ta sieć jest zwykle własnością projektuadmini nie jestsharedaniexternal.access: Tryb udostępniania z docelowym projektem(-ami). Ważne opcje toaccess_as_externaliaccess_as_shared.projects: Lista nazw projektów do udostępnienia nazwanej sieci w określony sposób.
UWAGA: Przypisania RBAC nie mogą być modyfikowane po ich utworzeniu.
Zależności
Ta rola zależy od roli stackhpc.os_openstacksdk.
Przykład playbooka
Poniższy playbook rejestruje sieć neutron, podsieć i router. Zdefiniowana jest klasa statycznej trasy, aby uzyskać dostęp do innej podsieci przez inny gateway.
---
- name: Zapewnienie, że sieci, podsieci i routery są zarejestrowane
hosts: neutron-api
roles:
- role: os-networks
os_networks_venv: "~/os-networks-venv"
os_networks_auth_type: "password"
os_networks_auth:
project_name: <projekt keystone>
username: <użytkownik keystone>
password: <hasło keystone>
auth_url: <adres URL autoryzacji 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
Informacje o autorze
- Mark Goddard (mark@stackhpc.com)
Role to register networks, subnets and routers in OpenStack
ansible-galaxy install stackhpc.ansible-role-os-networks