daniel-rhoades.aws-vpc

Circle CI

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 auf absent.

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)

Über das Projekt

Ansible role for simplifying the provisioning and decommissioning of a VPC within an AWS account

Installieren
ansible-galaxy install daniel-rhoades.aws-vpc
GitHub Repository
Lizenz
mit
Downloads
429
Besitzer
Strategist, Technologist and Engineer