亚马逊云科技 - 追加/编辑 AWS 路由表条目



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

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

通过 AWS CLI 替换路由命令更新路由表的一种方法。

示例: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 更新为现有路由表 -rtb-d0e3dsb7 中 CIDR 10.101.0.0/16 的网关。

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

虽然您始终可以使用 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

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

谢谢@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

相关内容

  • 没有找到相关文章

最新更新