daniel-rhoades.aws-vpc
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)