inhumantsar.ec2-vpc
ec2-vpc
Qu'est-ce que c'est ?
Crée un nouveau VPC, des sous-réseaux publics et une passerelle Internet.
Pourquoi ?
Fournir une interface simple et autonome.
Comment ?
Prérequis
- Python :
boto
(pas boto3)
vpc_service_env: 'dev' # le nom réel du VPC aura ceci ajouté ie : name_env
vpc_service_state: 'present' # mettre sur 'absent' pour détruire les éléments aprè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' # comme bon vous semble pour le sous-réseautage
- '10.0.2.0/24' # il suffit de le calculer vous-même
vpc_public_subnet_azs:
'10.0.1.0/24': 'a' # ces clés doivent correspondre aux valeurs dans vpc_public_subnet_cidrs
'10.0.2.0/24': 'b' # vous pouvez en avoir d'autres ici, mais devez couvrir toutes les valeurs ci-dessus
En coulisses
library/get_subnet_ids.py
Il s'agit simplement d'une compréhension de dictionnaire qui renvoie uniquement les IDs de sous-réseau d'un objet rempli d'informations.
library/rtb_deleteable.py
C'est un module simple conçu pour analyser les faits retournés par ec2_vpc_route_table_facts. Il lit le dictionnaire qu'il produit et génère un dictionnaire où les clés sont les IDs des tables de routage et les valeurs sont un booléen indiquant si la table de routage peut être supprimée. Cela se fait en vérifiant le drapeau qui marque la table de routage "principale".
Pourquoi ?
La table de routage "principale" ne peut pas être supprimée, sauf en supprimant le VPC, donc nous devons l’ignorer. Cependant, explorer un dictionnaire comme ça uniquement avec Ansible est pénible/impossible. Heureusement, ajouter un petit script Python dans un rôle Ansible est assez facile.
Creates a new VPC, public subnets, and an internet gateway. Optionally creates private subnets and a NAT gateway.
ansible-galaxy install inhumantsar.ec2-vpc