daniel-rhoades.aws-vpc

Circle CI

aws-vpc

Rôle Ansible pour simplifier la création et la désactivation d'un VPC dans un compte AWS.

Pour plus d'informations détaillées sur la création de VPC avec Ansible, consultez la documentation officielle de ce module : http://docs.ansible.com/ansible/ec2_vpc_module.html.

Exigences

Nécessite les derniers modules de support EC2 d'Ansible ainsi que Boto.

Vous devez également configurer votre environnement Ansible pour l'utiliser avec AWS, voir http://docs.ansible.com/ansible/guide_aws.html.

Variables de Rôle

Valeurs par défaut :

  • vpc_resource_tags : Étiquettes à définir sur le VPC, par défaut le nom du VPC est utilisé ;
  • vpc_internet_gateway : Si vous voulez que le VPC puisse se connecter directement à Internet, la valeur par défaut est True ;
  • vpc_state : État par défaut des composants, la valeur par défaut est present. Pour supprimer le VPC, définissez-le sur absent.

Variables requises :

  • vpc_name : Vous devez spécifier le nom du VPC que vous souhaitez créer, par exemple my-vpc ;
  • vpc_region : Vous devez spécifier la région dans laquelle vous souhaitez créer le VPC, par exemple eu-west-1 ;
  • vpc_cidr_block : Vous devez spécifier la plage CIDR que vous souhaitez pour le VPC, par exemple 172.40.0.0/16 ;
  • vpc_subnets : Vous devez spécifier les sous-réseaux que vous souhaitez créer, voir la section exemple de playbook ci-dessous pour plus d'informations ;
  • public_subnet_routes : Vous devez spécifier les routes des sous-réseaux publics que vous souhaitez créer, voir la section exemple de playbook ci-dessous pour plus d'informations.

Sorties :

  • vpc : L'objet VPC AWS créé à la suite de l'exécution du ec2_vpc_module avec les variables fournies.

Dépendances

Pas de dépendances envers d'autres rôles.

Exemple de Playbook

Avant d'utiliser ce rôle, vous devez l'installer, le moyen le plus simple de le faire est : ansible-galaxy install daniel-rhoades.aws-vpc.

L'exemple de playbook ci-dessous garantit qu'un VPC est provisionné dans AWS comme spécifié, par exemple, si un VPC correspondant existe déjà, le rôle ne fait rien, sinon il est créé.

- nom : Mon Système | Provisionner toute l'infrastructure requise
  hôtes : localhost
  connexion : local
  collecter_des_faits : non
  vars :
    my_vpc_name : "mon_vpc_exemple"
    my_vpc_region : "eu-west-1"
    my_vpc_cidr : "172.40.0.0/16"
    everywhere_cidr : "0.0.0.0/0"

    # Sous-réseaux dans le 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"

    # Autoriser les sous-réseaux à se connecter au monde extérieur
    my_public_subnet_routes :
      - subnets :
          - "{{ my_vpc_subnets[0].cidr }}"
          - "{{ my_vpc_subnets[1].cidr }}"
        routes :
          - dest : "{{ everywhere_cidr }}"
            gw : igw
  rôles :
    # Provisionner la mise en réseau
    - {
        rôle : 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 }}"
      }

Pour désactiver un VPC :

- nom : Mon Système | Désactiver toute l'infrastructure requise
  hôtes : localhost
  connexion : local
  collecter_des_faits : non
  vars :
    my_vpc_name : "mon_vpc_exemple"
    my_vpc_region : "eu-west-1"
    my_vpc_cidr : "172.40.0.0/16"
    everywhere_cidr : "0.0.0.0/0"

    # Sous-réseaux dans le 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"

    # Autoriser les sous-réseaux à se connecter au monde extérieur
    my_public_subnet_routes :
      - subnets :
          - "{{ my_vpc_subnets[0].cidr }}"
          - "{{ my_vpc_subnets[1].cidr }}"
        routes :
          - dest : "{{ everywhere_cidr }}"
            gw : igw
  rôles :
    # Désactiver la mise en réseau
    - {
        rôle : 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 }}"
      }

Licence

MIT

Informations sur l'auteur

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

À propos du projet

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

Installer
ansible-galaxy install daniel-rhoades.aws-vpc
Licence
mit
Téléchargements
429
Propriétaire
Strategist, Technologist and Engineer