daniel-rhoades.aws-vpc

Circle CI

aws-vpc

AWSアカウント内にVPCを簡単に設定および削除するためのAnsibleロールです。

Ansibleを使用してVPCを作成する詳細については、公式ドキュメントをご覧ください: http://docs.ansible.com/ansible/ec2_vpc_module.html。

要件

最新のAnsible EC2サポートモジュールとBotoが必要です。

AWSで使用するためにAnsible環境を設定する必要があります。詳しくは http://docs.ansible.com/ansible/guide_aws.html を参照してください。

ロール変数

デフォルト:

  • vpc_resource_tags: VPCに設定するタグ。デフォルトではVPCの名前が使用されます。
  • vpc_internet_gateway: インターネットに直接接続できるVPCを作成したい場合、デフォルトはTrueです。
  • vpc_state: デフォルトのコンポーネント状態。デフォルトはpresentです。VPCを削除するには、これをabsentに設定します。

必要な変数:

  • vpc_name: 作成したいVPCの名前を指定する必要があります。例: my-vpc;
  • vpc_region: VPCを作成したいリージョンを指定する必要があります。例: eu-west-1;
  • vpc_cidr_block: VPCが持つCIDRブロックの範囲を指定する必要があります。例: 172.40.0.0/16;
  • vpc_subnets: 作成したいサブネットを指定する必要があります。詳細は以下のサンプルプレイブックセクションをご覧ください。
  • public_subnet_routes: 作成したいパブリックサブネットルートを指定する必要があります。詳細は以下のサンプルプレイブックセクションをご覧ください。

出力:

  • vpc: 提供された変数を使用してec2_vpc_moduleを実行した結果生成されたAWS VPCオブジェクト。

依存関係

他のロールに依存しません。

サンプルプレイブック

このロールを使用する前に、ロールをインストールする必要があります。最も簡単な方法は: ansible-galaxy install daniel-rhoades.aws-vpc です。

以下のサンプルプレイブックは、指定された通りにAWSにVPCがプロビジョニングされることを確認します。すでに一致するものがある場合、ロールは何もしません。そうでない場合は作成されます。

- name: My System | 必要なインフラをプロビジョニングする
  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"

    # 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"

    # サブネットが外部と通信できるようにする
    my_public_subnet_routes:
      - subnets:
          - "{{ my_vpc_subnets[0].cidr }}"
          - "{{ my_vpc_subnets[1].cidr }}"
        routes:
          - dest: "{{ everywhere_cidr }}"
            gw: igw
  roles:
    # ネットワークのプロビジョニング
    - {
        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 }}"
      }

VPCを削除するには:

- name: My System | 必要なインフラを削除する
  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"

    # 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"

    # サブネットが外部と通信できるようにする
    my_public_subnet_routes:
      - subnets:
          - "{{ my_vpc_subnets[0].cidr }}"
          - "{{ my_vpc_subnets[1].cidr }}"
        routes:
          - dest: "{{ everywhere_cidr }}"
            gw: igw
  roles:
    # ネットワークを削除する
    - {
        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 }}"
      }

ライセンス

MIT

著者情報

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
ライセンス
mit
ダウンロード
429
所有者
Strategist, Technologist and Engineer