inhumantsar.ec2-vpc
ec2-vpc
Co to jest?
Tworzy nową VPC, publiczne podsieci i bramę internetową.
Dlaczego?
Zapewnia prosty, samodzielny interfejs.
Jak to działa?
Wymagania wstępne
- Python:
boto
(nie boto3)
vpc_service_env: 'dev' # faktyczna nazwa VPC będzie miała to dopisane, np. name_env
vpc_service_state: 'present' # ustaw na 'absent', aby usunąć elementy po zakończeniu
vpc_name: 'test'
vpc_cidr: '10.0.0.0/16'
vpc_region: 'us-east-1'
vpc_public_subnet_cidrs:
- '10.0.1.0/24' # możesz podać dowolną wartość dla podsieci
- '10.0.2.0/24' # musisz samodzielnie to obliczyć
vpc_public_subnet_azs:
'10.0.1.0/24': 'a' # te klucze muszą odpowiadać wartościom w vpc_public_subnet_cidrs
'10.0.2.0/24': 'b' # można dodać więcej, ale wszystkie wartości w ^
Co się dzieje w tle
library/get_subnet_ids.py
Po prostu wykonuje pewne zrozumienie słownika, aby zwrócić tylko identyfikatory podsieci z obiektu pełnego informacji.
library/rtb_deleteable.py
To prosty moduł służący do analizowania danych zwróconych przez ec2_vpc_route_table_facts. Odczytuje on słownik, który tworzy, i produkuje słownik, w którym klucze to identyfikatory tablicy routingu, a wartości to boolean, który wskazuje, czy tablica routingu może być bezpiecznie usunięta. Działa to przez sprawdzenie flagi, która oznacza "główną" tablicę routingu.
Dlaczego?
"Główna" tablica routingu nie może być usunięta, chyba że poprzez usunięcie VPC, więc musimy ją pominąć. Jednak przeszukiwanie takiego słownika czystym Ansible jest trudne/niemożliwe. Na szczęście dodanie trochę kreatywnego skryptu Pythona do roli Ansible jest dość łatwe.
Creates a new VPC, public subnets, and an internet gateway. Optionally creates private subnets and a NAT gateway.
ansible-galaxy install inhumantsar.ec2-vpc