daniel-rhoades.aws-vpc

Circle CI

aws-vpc

Rola Ansible do uproszczenia tworzenia i usuwania VPC w koncie AWS.

Aby uzyskać więcej informacji na temat tworzenia VPC za pomocą Ansible, zobacz oficjalną dokumentację tego modułu: http://docs.ansible.com/ansible/ec2_vpc_module.html.

Wymagania

Wymaga najnowszych modułów wsparcia EC2 Ansible oraz Boto.

Musisz również skonfigurować swoje środowisko Ansible do pracy z AWS, zobacz http://docs.ansible.com/ansible/guide_aws.html.

Zmienne roli

Domyślne:

  • vpc_resource_tags: Tagi do ustawienia na VPC, domyślnie używana jest nazwa VPC;
  • vpc_internet_gateway: Jeśli chcesz, aby VPC mogło bezpośrednio łączyć się z Internetem, domyślnie ustawione na True;
  • vpc_state: Domyślne stany komponentów, domyślnie present. Aby usunąć VPC, ustaw to na absent.

Wymagane zmienne:

  • vpc_name: Musisz określić nazwę VPC, którą chcesz stworzyć, np. my-vpc;
  • vpc_region: Musisz określić region, w którym chcesz stworzyć VPC, np. eu-west-1;
  • vpc_cidr_block: Musisz określić zakres CIDR, który chcesz, aby VPC miało, np. 172.40.0.0/16;
  • vpc_subnets: Musisz określić podsieci, które chcesz stworzyć, zobacz sekcję przykładowego playbooka poniżej po więcej informacji;
  • public_subnet_routes: Musisz określić trasy dla publicznych podsieci, które chcesz stworzyć, zobacz sekcję przykładowego playbooka poniżej po więcej informacji.

Wyjścia:

  • vpc: Obiekt VPC AWS utworzony w wyniku działania ec2_vpc_module z dostarczonymi zmiennymi.

Zależności

Brak zależności od innych ról.

Przykładowy Playbook

Przed użyciem tej roli musisz ją zainstalować, najprostszy sposób to: ansible-galaxy install daniel-rhoades.aws-vpc.

Przykładowy playbook poniżej zapewnia, że VPC jest tworzone w AWS zgodnie z określeniem, np. jeśli jedno już pasuje, rola nic nie robi, w przeciwnym razie zostanie utworzone.

- name: Mój system | Zapewnij całą wymaganą infrastrukturę
  hosts: localhost
  connection: local
  gather_facts: no
  vars:
    my_vpc_name: "my_example_vpc"
    my_vpc_region: "eu-west-1"
    my_vpc_cidr: "172.40.0.0/16"
    everywhere_cidr: "0.0.0.0/0"

    # Podsieci w VPC
    my_vpc_subnets:
      - cidr: "172.40.10.0/24"
        az: "{{ my_vpc_region }}a"

      - cidr: "172.40.20.0/24"
        az: "{{ my_vpc_region }}b"

    # Zezwól na trasy podsieci w kierunku świata zewnętrznego
    my_public_subnet_routes:
      - subnets:
          - "{{ my_vpc_subnets[0].cidr }}"
          - "{{ my_vpc_subnets[1].cidr }}"
        routes:
          - dest: "{{ everywhere_cidr }}"
            gw: igw
  roles:
    # Zapewnij sieć
    - {
        role: daniel-rhoades.aws-vpc,
        vpc_name: "{{ my_vpc_name }}",
        vpc_region: "{{ my_vpc_region }}",
        vpc_cidr_block: "{{ my_vpc_cidr }}",
        vpc_subnets: "{{ my_vpc_subnets }}",
        public_subnet_routes: "{{ my_public_subnet_routes }}"
      }

Aby usunąć VPC:

- name: Mój system | Usuń całą wymaganą infrastrukturę
  hosts: localhost
  connection: local
  gather_facts: no
  vars:
    my_vpc_name: "my_example_vpc"
    my_vpc_region: "eu-west-1"
    my_vpc_cidr: "172.40.0.0/16"
    everywhere_cidr: "0.0.0.0/0"

    # Podsieci w VPC
    my_vpc_subnets:
      - cidr: "172.40.10.0/24"
        az: "{{ my_vpc_region }}a"

      - cidr: "172.40.20.0/24"
        az: "{{ my_vpc_region }}b"

    # Zezwól na trasy podsieci w kierunku świata zewnętrznego
    my_public_subnet_routes:
      - subnets:
          - "{{ my_vpc_subnets[0].cidr }}"
          - "{{ my_vpc_subnets[1].cidr }}"
        routes:
          - dest: "{{ everywhere_cidr }}"
            gw: igw
  roles:
    # Usuń sieć
    - {
        role: daniel-rhoades.aws-vpc,
        vpc_state: "absent",
        vpc_name: "{{ my_vpc_name }}",
        vpc_region: "{{ my_vpc_region }}",
        vpc_cidr_block: "{{ my_vpc_cidr }}",
        vpc_subnets: "{{ my_vpc_subnets }}",
        public_subnet_routes: "{{ my_public_subnet_routes }}"
      }

Licencja

MIT

Informacje o Autorze

Daniel Rhoades (https://github.com/daniel-rhoades)

O projekcie

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

Zainstaluj
ansible-galaxy install daniel-rhoades.aws-vpc
Licencja
mit
Pobrania
429
Właściciel
Strategist, Technologist and Engineer