Append/Edit aws 路由 table 条目
Append/Edit aws route table entry
我已经通过 Ansible 剧本创建了一个 VPC B。现在我想在 VPC B 和 VPC A 之间进行 VPC 对等连接。我可以创建 VPC 对等连接并激活 VPC 对等连接。
但我正在努力解决如何使用新 vpc_peering_id.
Append/Edit VPC A 的现有路由 table 条目
一种通过 AWS CLI replace-route 命令更新路由 table 的方法。
示例: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 作为现有路由 table -rtb-d0e3dsb7.
中 CIDR 10.101.0.0/16 的网关
现在我可以在 Ansible play 中使用这个命令,它会更新 VPC A 现有路由 table 中的 vpc_peering_id,以便在 VPC A 和 VPC B 之间进行通信。
虽然您总是可以 shell 使用 Ansible,但是如果可能的话,您通常总是最好使用模块,因为它应该带来幂等性和更好的流和输出控制。
所以在这种情况下,您应该使用 Ansible 2 中发布的 ec2_vpc_route_table
模块。
一个基本示例可能如下所示:
- 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
这将创建一个路由 table,它与 3 个私有子网相关联并且有 2 个路由:一个是 VPC B 的 VPC 对等路由,用于该 VPC 的 CIDR 范围,另一个是默认路由它将通过 NAT instance/gateway.
访问互联网
谢谢@PrashantB
我想添加新路由而不是替换当前路由,所以只更改为创建路由,还需要更改区域 before/after 用于对等连接设置
aws configure set default.region us-east-1
aws ec2 create-route --route-table-id rtb-09ddaxxxxxxxxxxxx -destination-cidr-block 10.5.5.0/24 --vpc-peering-connection-id pcx-063xxxxxxxxxx8a1a
aws configure set default.region us-east-2
Ansible 剧本中的代码
- name: change region for adding peer connection route to peer route table for peer connection bi-directional
local_action: command aws configure set default.region us-east-1
- name: add peer connection route to peer route table for peer connection bi-directional
local_action: command aws ec2 create-route --route-table-id {{ peer_route_table_id_edge_private }} --destination-cidr-block 10.255.251.0/24 --vpc-peering-connection-id {{ peer_id }}
ignore_errors: yes
register: peer_route
- debug: var=peer_route
- name: change region for adding peer connection route to peer route table for peer connection bi-directional
local_action: command aws configure set default.region us-east-2
带有循环结果的 Ansible 剧本中的代码
- name: add peer connection route to peer route table for peer connection bi-directional
local_action: command aws ec2 create-route --route-table-id {{ item.route_table.id }} --destination-cidr-block {{ vpc_cidr_block }} --vpc-peering-connection-id {{ peer_id_edge }}
ignore_errors: yes
loop: "{{ private_rtbs_edge.results }}"
register: peer_route
- debug: var=peer_route
我已经通过 Ansible 剧本创建了一个 VPC B。现在我想在 VPC B 和 VPC A 之间进行 VPC 对等连接。我可以创建 VPC 对等连接并激活 VPC 对等连接。
但我正在努力解决如何使用新 vpc_peering_id.
Append/Edit VPC A 的现有路由 table 条目一种通过 AWS CLI replace-route 命令更新路由 table 的方法。
示例: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 作为现有路由 table -rtb-d0e3dsb7.
中 CIDR 10.101.0.0/16 的网关现在我可以在 Ansible play 中使用这个命令,它会更新 VPC A 现有路由 table 中的 vpc_peering_id,以便在 VPC A 和 VPC B 之间进行通信。
虽然您总是可以 shell 使用 Ansible,但是如果可能的话,您通常总是最好使用模块,因为它应该带来幂等性和更好的流和输出控制。
所以在这种情况下,您应该使用 Ansible 2 中发布的 ec2_vpc_route_table
模块。
一个基本示例可能如下所示:
- 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
这将创建一个路由 table,它与 3 个私有子网相关联并且有 2 个路由:一个是 VPC B 的 VPC 对等路由,用于该 VPC 的 CIDR 范围,另一个是默认路由它将通过 NAT instance/gateway.
访问互联网谢谢@PrashantB
我想添加新路由而不是替换当前路由,所以只更改为创建路由,还需要更改区域 before/after 用于对等连接设置
aws configure set default.region us-east-1
aws ec2 create-route --route-table-id rtb-09ddaxxxxxxxxxxxx -destination-cidr-block 10.5.5.0/24 --vpc-peering-connection-id pcx-063xxxxxxxxxx8a1a
aws configure set default.region us-east-2
Ansible 剧本中的代码
- name: change region for adding peer connection route to peer route table for peer connection bi-directional
local_action: command aws configure set default.region us-east-1
- name: add peer connection route to peer route table for peer connection bi-directional
local_action: command aws ec2 create-route --route-table-id {{ peer_route_table_id_edge_private }} --destination-cidr-block 10.255.251.0/24 --vpc-peering-connection-id {{ peer_id }}
ignore_errors: yes
register: peer_route
- debug: var=peer_route
- name: change region for adding peer connection route to peer route table for peer connection bi-directional
local_action: command aws configure set default.region us-east-2
带有循环结果的 Ansible 剧本中的代码
- name: add peer connection route to peer route table for peer connection bi-directional
local_action: command aws ec2 create-route --route-table-id {{ item.route_table.id }} --destination-cidr-block {{ vpc_cidr_block }} --vpc-peering-connection-id {{ peer_id_edge }}
ignore_errors: yes
loop: "{{ private_rtbs_edge.results }}"
register: peer_route
- debug: var=peer_route