inhumantsar.ec2-vpc
ec2-vpc
¿Qué?
Crea una nueva VPC, subredes públicas y una puerta de enlace de internet.
¿Por qué?
Proveer una interfaz simple y autónoma.
¿Cómo?
Requisitos previos
- Python:
boto
(no boto3)
vpc_service_env: 'dev' # el nombre real de la VPC tendrá esto añadido, es decir: name_env
vpc_service_state: 'present' # ponlo en 'absent' para desmontar todo después
vpc_name: 'test'
vpc_cidr: '10.0.0.0/16'
vpc_region: 'us-east-1'
vpc_public_subnet_cidrs:
- '10.0.1.0/24' # lo que prefieras para el subnetting
- '10.0.2.0/24' # solo tienes que calcularlo tú mismo
vpc_public_subnet_azs:
'10.0.1.0/24': 'a' # estas claves deben coincidir con los valores en vpc_public_subnet_cidrs
'10.0.2.0/24': 'b' # puedes tener extras aquí, pero necesitas cubrir todos los valores en ^
Detrás de escena
library/get_subnet_ids.py
Solo realiza una comprensión de diccionario para devolver solo los IDs de las subredes de un objeto lleno de información.
library/rtb_deleteable.py
Este es un módulo simple diseñado para analizar los datos devueltos por ec2_vpc_route_table_facts. Lee el diccionario que produce y genera un diccionario donde las claves son los IDs de las tablas de rutas, y los valores son un booleano que indica si la tabla de rutas se puede eliminar. Esto lo hace comprobando la bandera que marca la tabla de rutas "principal".
¿Por qué?
La tabla de rutas "principal" no se puede eliminar, excepto eliminando la VPC, por lo que necesitamos saltarla. Sin embargo, explorar un diccionario así solo con Ansible es doloroso/imposible. Afortunadamente, agregar un pequeño script de Python a un rol de Ansible es bastante fácil.
Creates a new VPC, public subnets, and an internet gateway. Optionally creates private subnets and a NAT gateway.
ansible-galaxy install inhumantsar.ec2-vpc