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ślnie- present.
- 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ędzie- true, jeśli- gateway_ipjest podany, a- falsew 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 z- destination(docelowa sieć w kodowaniu CIDR) i- nexthop(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ślnie- present.
 
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ślnie- present.
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ślnie- present.
- 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ślnie- ingress.
- ethertype: Opcjonalny typ eteru reguły, domyślnie- IPv4.
- 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ślnie- present.
 
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ą projektu- admini nie jest- sharedani- external.
- access: Tryb udostępniania z docelowym projektem(-ami). Ważne opcje to- access_as_externali- access_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