daniel-rhoades.aws-vpc
aws-vpc
Ansible-Rolle zur Vereinfachung der Bereitstellung und Stilllegung eines VPC innerhalb eines AWS-Kontos.
Für genauere Informationen zur Erstellung von VPCs mit Ansible siehe die offizielle Dokumentation für dieses Modul: http://docs.ansible.com/ansible/ec2_vpc_module.html.
Anforderungen
Erfordert die neuesten Ansible EC2-Supportmodule sowie Boto.
Außerdem müssen Sie Ihre Ansible-Umgebung für die Nutzung mit AWS konfigurieren, siehe http://docs.ansible.com/ansible/guide_aws.html.
Rollenvariablen
Standardwerte:
- vpc_resource_tags: Tags, die auf dem VPC gesetzt werden sollen, standardmäßig wird der Name des VPC verwendet;
- vpc_internet_gateway: Wenn Sie möchten, dass der VPC direkt mit dem Internet verbunden ist, standardmäßig auf Wahr (True);
- vpc_state: Standardzustände der Komponenten, standardmäßig auf
present
. Um den VPC zu löschen, setzen Sie dies aufabsent
.
Erforderliche Variablen:
- vpc_name: Sie müssen den Namen des VPC angeben, den Sie erstellen möchten, z.B. my-vpc;
- vpc_region: Sie müssen die Region angeben, in der Sie den VPC erstellen möchten, z.B. eu-west-1;
- vpc_cidr_block: Sie müssen den CIDR-Blockbereich angeben, den der VPC haben soll, z.B. 172.40.0.0/16;
- vpc_subnets: Sie müssen die Subnetze angeben, die Sie erstellen möchten, siehe Abschnitt Beispiel-Playbook weiter unten für weitere Informationen;
- public_subnet_routes: Sie müssen die Routen der öffentlichen Subnetze angeben, die Sie erstellen möchten, siehe Abschnitt Beispiel-Playbook weiter unten für weitere Informationen.
Ausgaben:
- vpc: Das AWS VPC-Objekt, das als Ergebnis der Ausführung des
ec2_vpc_module
mit den angegebenen Variablen erstellt wurde.
Abhängigkeiten
Keine Abhängigkeiten zu anderen Rollen.
Beispiel-Playbook
Bevor Sie diese Rolle verwenden, müssen Sie sie installieren. Der einfachste Weg, dies zu tun, ist: ansible-galaxy install daniel-rhoades.aws-vpc
.
Das Beispiel-Playbook unten sorgt dafür, dass ein VPC in AWS bereitgestellt wird, wie angegeben. Wenn bereits einer vorhanden ist, wird die Rolle nichts tun, andernfalls wird er erstellt.
- name: Mein System | Bereitstellung aller erforderlichen Infrastruktur
hosts: localhost
connection: local
gather_facts: no
vars:
mein_vpc_name: "mein_beispiel_vpc"
mein_vpc_region: "eu-west-1"
mein_vpc_cidr: "172.40.0.0/16"
überall_cidr: "0.0.0.0/0"
# Subnetze innerhalb des VPC
mein_vpc_subnets:
- cidr: "172.40.10.0/24"
az: "{{ mein_vpc_region }}a"
- cidr: "172.40.20.0/24"
az: "{{ mein_vpc_region }}b"
# Erlaube den Subnetzen, ins Außenwelt zu routen
meine_öffentlichen_subnetz_routen:
- subnets:
- "{{ mein_vpc_subnets[0].cidr }}"
- "{{ mein_vpc_subnets[1].cidr }}"
routes:
- dest: "{{ überall_cidr }}"
gw: igw
rollen:
# Bereitstellung der Netzwerke
- {
rolle: daniel-rhoades.aws-vpc,
vpc_name: "{{ mein_vpc_name }}",
vpc_region: "{{ mein_vpc_region }}",
vpc_cidr_block: "{{ mein_vpc_cidr }}",
vpc_subnets: "{{ mein_vpc_subnets }}",
public_subnet_routes: "{{ meine_öffentlichen_subnetz_routen }}"
}
Um einen VPC stillzulegen:
- name: Mein System | Stilllegung aller erforderlichen Infrastruktur
hosts: localhost
connection: local
gather_facts: no
vars:
mein_vpc_name: "mein_beispiel_vpc"
mein_vpc_region: "eu-west-1"
mein_vpc_cidr: "172.40.0.0/16"
überall_cidr: "0.0.0.0/0"
# Subnetze innerhalb des VPC
mein_vpc_subnets:
- cidr: "172.40.10.0/24"
az: "{{ mein_vpc_region }}a"
- cidr: "172.40.20.0/24"
az: "{{ mein_vpc_region }}b"
# Erlaube den Subnetzen, ins Außenwelt zu routen
meine_öffentlichen_subnetz_routen:
- subnets:
- "{{ mein_vpc_subnets[0].cidr }}"
- "{{ mein_vpc_subnets[1].cidr }}"
routes:
- dest: "{{ überall_cidr }}"
gw: igw
rollen:
# Stilllegung der Netzwerke
- {
rolle: daniel-rhoades.aws-vpc,
vpc_state: "absent",
vpc_name: "{{ mein_vpc_name }}",
vpc_region: "{{ mein_vpc_region }}",
vpc_cidr_block: "{{ mein_vpc_cidr }}",
vpc_subnets: "{{ mein_vpc_subnets }}",
public_subnet_routes: "{{ meine_öffentlichen_subnetz_routen }}"
}
Lizenz
MIT
Informationen zum Autor
Daniel Rhoades (https://github.com/daniel-rhoades)
Ansible role for simplifying the provisioning and decommissioning of a VPC within an AWS account
ansible-galaxy install daniel-rhoades.aws-vpc