2016-07-14 3 views
1

Я создал VPC B через Ansible playbook. Теперь я хочу сделать VPC-пиринг между VPC B и VPC A. Я могу создать пиринг VPC и активировать пиринговое соединение VPC.Append/Edit aws route table entry

Но я борюсь с тем, как добавить/изменить существующую запись таблицы маршрутов для VPC A с новым vpc_peering_id.

+0

AWS автоматически добавляет маршруты, когда вы просматриваете VPC. Проверьте таблицы маршрутов. –

+1

@KarenB Я уверен, что это не так. Это было бы потенциально безумным дефолтом, потому что вы могли бы только направлять одну подсеть в одну подсеть, а не весь VPC на весь VPC, так как они могли бы знать, что вы хотите сделать? – ydaetskcoR

+1

@KarenB Нет, это не так. – PrashantB

ответ

0

Один из способов обновления таблицы маршрутов с помощью команды AWS CLI replace-route.

Пример: aws ec2 replace-route --route-table-id rtb-d0e3dsb7 --destination-cidr-block 10.101.0.0/16 --vpc-peering-connection-id pcx-0ffa4766

Это обновит vpc_peering_connection_id -pcx-0ffa4766 в качестве шлюза для CIDR 10.101.0.0/16 в существующей таблице маршрутизации -rtb-d0e3dsb7.

Теперь я могу использовать эту команду в анзибле игре, которая будет обновлять vpc_peering_id в существующей маршрутной таблице VPC А для обмена данных между VPC A и B. VPC

1

Хотя вы всегда можете раскошеливаться с анзиблем вы обычно всегда лучше использовать модуль, если это возможно, поскольку он должен приносить с собой идемпотентность и лучший контроль потока и вывода.

Так что в этом случае вы должны использовать ec2_vpc_route_table модуль выпущен в анзибле 2.

Простой пример может выглядеть примерно так:

- name: private route table 
    ec2_vpc_route_table: 
    vpc_id: "{{ vpc_a_id }}" 
    region: "{{ ec2_region }}" 
    tags: 
     Name: private 
    subnets: 
     - "{{ private_subnet_a.id }}" 
     - "{{ private_subnet_b.id }}" 
     - "{{ private_subnet_c.id }}" 
    routes: 
     - dest: 0.0.0.0/0 
     gateway_id: "{{ nat_instance }}" 
     - dest: "{{ vpc_b_cidr }}" 
     gateway_id: "{{ vpc_a_to_b_pcx_id }}" 
    register: private_route_table 

Это создаст таблицу маршрутизации, связанную с 3 частных подсети и имеют 2 маршрута: один из них является пиринговым маршрутом VPC для VPC B для диапазона CIDR этого VPC, а другой - маршрутом по умолчанию, который отправляется в Интернет через экземпляр/шлюз NAT.