追加/编辑aws路由表条目

时间:2016-07-14 05:46:57

标签: amazon-web-services ansible aws-cli routetable

我通过Ansible playbook创建了一个VPC B.现在我想在VPC B和VPC A之间进行VPC对等。我可以创建VPC对等并激活VPC对等连接。

但我正在努力解决如何使用新的vpc_peering_id为VPC A添加/编辑现有路由表条目。

3 个答案:

答案 0 :(得分:2)

虽然你可以随时使用Ansible,但如果可能的话,你通常总是更好地使用模块,因为它应该带来幂等性和更好的流量和输出控制。

因此,在这种情况下,您应该使用Ansible 2中发布的ec2_vpc_route_table模块。

基本示例可能如下所示:

this

这将创建一个与3个私有子网相关联的路由表,并且有2条路由:一条是到VPC B的VPC对等路由,用于该VPC的CIDR范围,另一条是默认路由,将转到互联网通过NAT实例/网关。

答案 1 :(得分:2)

感谢@PrashantB

我想添加新路由而不是替换当前路由,因此只是更改为创建路由,还需要在对等连接建立之前/之后更改区域

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

答案 2 :(得分:1)

通过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

这将在现有路由表-rtb-d0e3dsb7中将vpc_peering_connection_id -pcx-0ffa4766更新为CIDR 10.101.0.0/16的网关。

现在我可以在Ansible play中使用此命令,它将更新VPC A的现有路由表中的vpc_peering_id,以便在VPC A和VPC B之间进行通信。