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_ip jest podany, a false 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 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 admin i nie jest shared ani external.
  • access: Tryb udostępniania z docelowym projektem(-ami). Ważne opcje to access_as_external i 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  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

O projekcie

Role to register networks, subnets and routers in OpenStack

Zainstaluj
ansible-galaxy install stackhpc.ansible-role-os-networks
Licencja
apache-2.0
Pobrania
157.5k
Właściciel
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.