1

定義されたAZの量に基づいてVPC用のサブネットを自動的に作成するロールを作成する必要があります。私はそう潜在的な変数をネストされた変数にする方法

aws.vpc.az = ['a', 'c', 'e']

 - cidr: 172.20.1.0/24 
     az: us-east-1d 
     resource_tags: { "Name": "{{aws.vpc.name}}-1d" } 

のような唯一のAZの名前を持っている場合、私はhttp://docs.ansible.com/ansible/playbooks_filters.htmlをチェックして、このいずれかのようにブロックに自動的に生成する方法

- name: Setup "{{ aws.vpc.name }}" VPC 
    ec2_vpc: 
    state: present 
    cidr_block: 172.20.0.0/16 
    resource_tags: { "Name": "{{aws.vpc.name}}" } 
    subnets: 
     - cidr: 172.20.1.0/24 
     az: us-east-1d 
     resource_tags: { "Name": "{{aws.vpc.name}}-1d" } 
     - cidr: 172.20.2.0/24 
     az: us-east-1c 
     resource_tags: { "Name": "{{aws.vpc.name}}-1c" } 
    internet_gateway: True 
    route_tables: 
     - subnets: 
      - 172.20.1.0/24 
      - 172.20.2.0/24 
     routes: 
      - dest: 0.0.0.0/0 
      gw: igw 
    region: {{ aws.vpc.region }} 

。しかし、私はこのブロックを動的に生成する方法を見つけませんでした。

+0

私は質問と混同しています。あなたはAZのリストのために辞書 'aws.vpc'にリスト変数' az 'を持つつもりですし、そのリストに動的にアクセスしてこのリストを実行したいのですか?それがあなたが意味するものでないなら、あなたは精緻化することができますか? – rk2

答えて

0

本質的に、ループを使用して変数に不能なリストを生成する別のタスクが必要です。これは、メインタスクに使用することができる。

- subnets: "{{ subnet_list }}" 

ホストを使用して、例えばthis answerを参照してください。 subnet_listの各項目は、それ自体が辞書(cidr、az、およびresource_tagsがキー)であるため、ケースはより複雑です。

関連する問題