daniel-rhoades.aws-vpc
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 naabsent
.
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)
Ansible role for simplifying the provisioning and decommissioning of a VPC within an AWS account
ansible-galaxy install daniel-rhoades.aws-vpc