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_ip
jest podany, afalse
w 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ą projektuadmin
i nie jestshared
aniexternal
.access
: Tryb udostępniania z docelowym projektem(-ami). Ważne opcje toaccess_as_external
iaccess_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