stackhpc.ansible-role-os-networks

NOTA:

Este repositorio ya no está mantenido - el rol se ha trasladado a la colección de Ansible ahora ➡️ https://github.com/stackhpc/ansible-collection-openstack

Redes OpenStack

Este rol se puede usar para registrar redes, subredes y routers en neutron usando los módulos os_network, os_subnet y os_router.

Requisitos

La API de OpenStack neutron debe ser accesible desde el host objetivo.

Variables del rol

os_networks_venv es una ruta a un directorio en el que crear un virtualenv.

os_networks_auth_type es un tipo de autenticación compatible con el argumento auth_type de los módulos de Ansible os_*.

os_networks_auth es un diccionario que contiene información de autenticación compatible con el argumento auth de los módulos de Ansible os_*.

os_networks_cacert es una ruta opcional a un paquete de certificados CA.

os_networks_cloud es un nombre opcional de una nube en clouds.yaml.

os_networks_interface es el tipo de URL del punto final para obtener información del catálogo de servicios. Puede ser uno de public, admin o internal.

os_networks es una lista de redes a registrar. Cada ítem debe ser un diccionario que contenga los siguientes elementos:

  • name: Nombre de la red neutron.
  • provider_network_type: Tipo de proveedor de la red neutron.
  • provider_physical_network: Red física del proveedor de la red neutron.
  • provider_segmentation_id: ID de segmentación del proveedor de la red neutron.
  • shared: Si la red neutron es compartida.
  • external: Si la red neutron es externa.
  • project: Opcionalmente crea esta red para un proyecto diferente al proyecto que está autenticando.
  • state: Estado opcional de la red, el valor predeterminado es present.
  • mtu: El valor máximo de unidad de transmisión (MTU) para abordar la fragmentación. La red utilizará las configuraciones predeterminadas de OpenStack si esta opción no se proporciona. Requiere ansible >= 2.9.
  • port_security_enabled: Si la seguridad de puertos está habilitada en la red o no. La red utilizará las configuraciones predeterminadas de OpenStack si esta opción no se utiliza. Booleano, verdadero para habilitar, falso de lo contrario. Requiere ansible >= 2.8.
  • dns_domain: El valor de dominio DNS a establecer. La red utilizará las configuraciones predeterminadas de OpenStack si esta opción no se proporciona. Requiere ansible >= 2.9.
  • subnets: Una lista de subredes a crear en esta red. Cada ítem debe ser un diccionario que contenga los siguientes elementos:
    • name: Nombre de la subred neutron.
    • cidr: Representación CIDR de la red IP de la subred neutron.
    • dns_nameservers: Una lista de servidores de nombres DNS para la subred.
    • extra_specs: Diccionario opcional con pares clave/valor adicionales enviados a la API. Requiere ansible >= 2.7.
    • gateway_ip: Dirección IP de la puerta de enlace de la subred neutron.
    • no_gateway_ip: Booleano opcional, indica si omitir una dirección IP de puerta de enlace. Si no se establece, esto será true si se especifica gateway_ip, y false de lo contrario.
    • enable_dhcp: Si se debe habilitar DHCP en la subred.
    • allocation_pool_start: Inicio de la piscina de asignación IP de la subred neutron.
    • allocation_pool_end: Fin de la piscina de asignación IP de la subred neutron.
    • host_routes: Una lista de rutas estáticas sin clases para proporcionar a los hosts conectados a esta subred. Se debe suministrar una lista de diccionarios con destination (red de destino en codificación CIDR) y nexthop (dirección IP del router en esta subred).
    • ip_version: Versión opcional de IP para la subred.
    • ipv6_address_mode: Modo de dirección IPv6 opcional para la subred.
    • ipv6_ra_mode: Modo de anuncio de router IPv6 opcional para la subred.
    • use_default_subnetpool: Booleano opcional, indica si usar la piscina de subredes predeterminada para la versión de IP.
    • project: Opcionalmente crea esta subred para un proyecto diferente al proyecto que está autenticando.
    • state: Estado opcional de la subred, el valor predeterminado es present.

os_networks_routers es una lista de routers a crear. Cada ítem debe ser un diccionario que contenga los siguientes elementos:

  • name: Nombre del router neutron.
  • interfaces: Lista de nombres de subredes para conectar a la interfaz interna del router.
  • network: Nombre único o ID de la red de puerta de enlace externa.
  • external_fixed_ips: Lista opcional de parámetros de dirección IP para la red de puerta de enlace externa. Cada uno es un diccionario con el nombre de la subred o ID de subred y la dirección IP para asignar en la subred.
  • project: Opcionalmente crea este router para un proyecto diferente al proyecto que está autenticando.
  • state: Estado opcional del router, el valor predeterminado es present.

os_networks_security_groups: Lista de grupos de seguridad a crear. Cada ítem debe ser un diccionario que contenga los siguientes elementos:

  • name: Nombre del grupo de seguridad.
  • description: Descripción opcional del grupo de seguridad.
  • project: Proyecto opcional en el que registrar el grupo de seguridad.
  • state: Estado opcional del grupo de seguridad, el valor predeterminado es present.
  • rules: Lista opcional de reglas para agregar al grupo de seguridad. Cada ítem debe ser un diccionario que contenga los siguientes elementos:
    • direction: Dirección opcional de la regla, el valor predeterminado es ingress.
    • ethertype: Tipo de Ethernet opcional de la regla, el valor predeterminado es IPv4.
    • port_range_min: Puerto de inicio opcional.
    • port_range_max: Puerto de fin opcional.
    • protocol: Protocolo IP opcional de la regla.
    • remote_group: Nombre o ID opcional del grupo de seguridad para vincular.
    • remote_ip_prefix: Prefijo de dirección IP de origen opcional en notación CIDR.
    • state: Estado opcional de la regla, el valor predeterminado es present.

os_networks_rbac es una lista de comparticiones de control de acceso basado en roles para redes y proyectos nombrados. Vea la guía del administrador de RBAC de Neutron para más detalles. Cada entrada en la lista es un diccionario que contiene los siguientes elementos:

  • network: El nombre de la red a compartir. Esta red normalmente es propiedad del proyecto admin y no es compartida o externa.
  • access: El modo de compartir con el(los) proyecto(s) objetivo. Las opciones válidas son access_as_external y access_as_shared.
  • projects: Una lista de nombres de proyectos para compartir la red nombrada de la manera designada.

NOTA: Las asignaciones de RBAC no se pueden modificar después de ser creadas.

Dependencias

Este rol depende del rol stackhpc.os_openstacksdk.

Ejemplo de Playbook

El siguiente playbook registra una red neutron, una subred y un router. Se define una ruta estática sin clases para acceder a otra subred a través de un router diferente.

---
- name: Asegurarse de que las redes, subredes y routers estén registrados
  hosts: neutron-api
  roles:
    - role: os-networks
      os_networks_venv: "~/os-networks-venv"
      os_networks_auth_type: "password"
      os_networks_auth:
        project_name: <proyecto keystone>
        username: <usuario keystone>
        password: <contraseña keystone>
        auth_url: <URL de autenticación 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

Información del autor

Acerca del proyecto

Role to register networks, subnets and routers in OpenStack

Instalar
ansible-galaxy install stackhpc.ansible-role-os-networks
Licencia
apache-2.0
Descargas
157.5k
Propietario
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.