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 espresent
.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 especificagateway_ip
, yfalse
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 condestination
(red de destino en codificación CIDR) ynexthop
(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 espresent
.
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 espresent
.
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 espresent
.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 esingress
.ethertype
: Tipo de Ethernet opcional de la regla, el valor predeterminado esIPv4
.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 espresent
.
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 proyectoadmin
y no escompartida
oexterna
.access
: El modo de compartir con el(los) proyecto(s) objetivo. Las opciones válidas sonaccess_as_external
yaccess_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
- Mark Goddard (mark@stackhpc.com)
Role to register networks, subnets and routers in OpenStack
ansible-galaxy install stackhpc.ansible-role-os-networks