inhumantsar.ec2-vpc

ec2-vpc

Was?

Erschafft ein neues VPC, öffentliche Subnetze und ein Internet-Gateway.

Warum?

Bietet eine einfache, eigenständige Schnittstelle.

Wie?

Voraussetzungen

  • Python: boto (nicht boto3)
vpc_service_env: 'dev'        # der tatsächliche VPC-Name erhält dieses Suffix, z.B.: name_env
vpc_service_state: 'present'  # auf 'absent' setzen, um alles abzubauen

vpc_name: 'test'
vpc_cidr: '10.0.0.0/16'
vpc_region: 'us-east-1'
vpc_public_subnet_cidrs:
  - '10.0.1.0/24'         # wähle was dir für Subnetze gefällt
  - '10.0.2.0/24'         # musst du selbst berechnen
vpc_public_subnet_azs:
  '10.0.1.0/24': 'a'      # diese Schlüssel müssen den Werten in vpc_public_subnet_cidrs entsprechen
  '10.0.2.0/24': 'b'      # können hier zusätzliche Einträge sein, aber alle Werte oben müssen abgedeckt sein

Hinter den Kulissen

library/get_subnet_ids.py

Der Code macht eine einfache Dictionary-Komprehension, um nur die Subnetz-IDs aus einem Objekt voller Informationen zurückzugeben.

library/rtb_deleteable.py

Dies ist ein einfaches Modul, das die Fakten, die von ec2_vpc_route_table_facts zurückgegeben werden, analysiert. Es liest das von ihm erzeugte Dictionary ein und gibt ein Dictionary zurück, bei dem die Schlüssel die Route-Tabellen-IDs sind, und die Werte ein Boolean, der angibt, ob die Route-Tabelle sicher gelöscht werden kann. Es prüft dies anhand eines Flags, das die "Haupt"-Route-Tabelle kennzeichnet.

Warum?

Die "Haupt"-Route-Tabelle kann nicht gelöscht werden, außer durch das Löschen der VPC, also müssen wir diese überspringen. Jedoch ist es mühsam und teilweise unmöglich, so ein Dictionary nur mit Ansible zu durchforsten. Zum Glück ist es recht einfach, ein kleines, hacky Python-Skript zu einer Ansible-Rolle hinzuzufügen.

Über das Projekt

Creates a new VPC, public subnets, and an internet gateway. Optionally creates private subnets and a NAT gateway.

Installieren
ansible-galaxy install inhumantsar.ec2-vpc
GitHub Repository
Lizenz
bsd-3-clause
Downloads
70
Besitzer