amazon.aws.ec2_vpc_route_table module – Manage route tables for AWS Virtual Private Clouds
Note
This module is part of the amazon.aws collection (version 7.6.1).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install amazon.aws
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: amazon.aws.ec2_vpc_route_table
.
New in amazon.aws 1.0.0
Synopsis
Manage route tables for AWS Virtual Private Clouds (VPCs).
Requirements
The below requirements are needed on the host that executes this module.
python >= 3.6
boto3 >= 1.26.0
botocore >= 1.29.0
Parameters
Parameter |
Comments |
---|---|
AWS access key ID. See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. The The aws_access_key and profile options are mutually exclusive. The aws_access_key_id alias was added in release 5.1.0 for consistency with the AWS botocore SDK. The ec2_access_key alias has been deprecated and will be removed in a release after 2024-12-01. Support for the |
|
The location of a CA Bundle to use when validating SSL certificates. The |
|
A dictionary to modify the botocore configuration. Parameters can be found in the AWS documentation https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
|
Use a The Choices:
|
|
URL to connect to instead of the default AWS endpoints. While this can be used to connection to other AWS-compatible services the amazon.aws and community.aws collections are only tested against AWS. The The ec2_url and s3_url aliases have been deprecated and will be removed in a release after 2024-12-01. Support for the |
|
The ID of the gateway to associate with the route table. If gateway_id is |
|
Look up route table by either tags or by route_table_id. If lookup=tag and tags is not specified then no lookup for an existing route table is performed and a new route table will be created. When using lookup=tag, multiple matches being found will result in a failure and no changes will be made. To change the tags of a route table use lookup=id. vpc_id must be specified when lookup=tag. Choices:
|
|
A named AWS profile to use for authentication. See the AWS documentation for more information about named profiles https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. The The profile option is mutually exclusive with the aws_access_key, aws_secret_key and security_token options. |
|
Enable route propagation from virtual gateways specified by ID. |
|
Purge existing routes that are not found in routes. Choices:
|
|
Purge existing subnets that are not found in subnets. Ignored unless the subnets option is supplied. Choices:
|
|
If purge_tags=true and tags is set, existing tags will be purged from the resource to match exactly what is defined by tags parameter. If the tags parameter is not set then tags will not be modified, even if purge_tags=True. Tag keys beginning with Choices:
|
|
The AWS region to use. For global services such as IAM, Route53 and CloudFront, region is ignored. The See the Amazon AWS documentation for more information http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. The Support for the |
|
The ID of the route table to update or delete. Required when lookup=id. |
|
List of routes in the route table. Routes are specified as dicts containing the keys The value of If gateway_id is specified, you can refer to the VPC’s IGW by using the value Routes are required for present states. Default: |
|
AWS secret access key. See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. The The secret_key and profile options are mutually exclusive. The aws_secret_access_key alias was added in release 5.1.0 for consistency with the AWS botocore SDK. The ec2_secret_key alias has been deprecated and will be removed in a release after 2024-12-01. Support for the |
|
AWS STS session token for use with temporary credentials. See the AWS documentation for more information about access tokens https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. The The security_token and profile options are mutually exclusive. Aliases aws_session_token and session_token were added in release 3.2.0, with the parameter being renamed from security_token to session_token in release 6.0.0. The security_token, aws_security_token, and access_token aliases have been deprecated and will be removed in a release after 2024-12-01. Support for the |
|
Create or destroy the VPC route table. Choices:
|
|
An array of subnets to add to this route table. Subnets may be specified by either subnet ID, Name tag, or by a CIDR such as ‘10.0.0.0/24’ or ‘fd00::/8’. |
|
A dictionary representing the tags to be applied to the resource. If the tags parameter is not set then tags will not be modified. |
|
When set to Setting validate_certs=false is strongly discouraged, as an alternative, consider setting aws_ca_bundle instead. Choices:
|
|
VPC ID of the VPC in which to create the route table. Required when state=present or lookup=tag. |
Notes
Note
Tags are used to uniquely identify route tables within a VPC when the route_table_id is not supplied.
Caution: For modules, environment variables and configuration files are read from the Ansible ‘host’ context and not the ‘controller’ context. As such, files may need to be explicitly copied to the ‘host’. For lookup and connection plugins, environment variables and configuration files are read from the Ansible ‘controller’ context and not the ‘host’ context.
The AWS SDK (boto3) that Ansible uses may also read defaults for credentials and other settings, such as the region, from its configuration files in the Ansible ‘host’ context (typically
~/.aws/credentials
). See https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html for more information.
Examples
# Note: These examples do not set authentication details, see the AWS Guide for details.
# Basic creation example:
- name: Set up public subnet route table
amazon.aws.ec2_vpc_route_table:
vpc_id: vpc-1245678
region: us-west-1
tags:
Name: Public
subnets:
- "{{ jumpbox_subnet.subnet.id }}"
- "{{ frontend_subnet.subnet.id }}"
- "{{ vpn_subnet.subnet_id }}"
routes:
- dest: 0.0.0.0/0
gateway_id: "{{ igw.gateway_id }}"
- dest: ::/0
gateway_id: "{{ igw.gateway_id }}"
register: public_route_table
- name: Create VPC gateway
amazon.aws.ec2_vpc_igw:
vpc_id: vpc-1245678
register: vpc_igw
- name: Create gateway route table
amazon.aws.ec2_vpc_route_table:
vpc_id: vpc-1245678
tags:
Name: Gateway route table
gateway_id: "{{ vpc_igw.gateway_id }}"
register: gateway_route_table
- name: Disassociate gateway from route table
amazon.aws.ec2_vpc_route_table:
vpc_id: vpc-1245678
tags:
Name: Gateway route table
gateway_id: None
register: gateway_route_table
- name: Set up NAT-protected route table
amazon.aws.ec2_vpc_route_table:
vpc_id: vpc-1245678
region: us-west-1
tags:
Name: Internal
subnets:
- "{{ application_subnet.subnet.id }}"
- 'Database Subnet'
- '10.0.0.0/8'
routes:
- dest: 0.0.0.0/0
instance_id: "{{ nat.instance_id }}"
register: nat_route_table
- name: delete route table
amazon.aws.ec2_vpc_route_table:
vpc_id: vpc-1245678
region: us-west-1
route_table_id: "{{ route_table.id }}"
lookup: id
state: absent
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
Route Table result. Returned: always |
|
List of associations between the route table and one or more subnets or a gateway. Returned: always |
|
The state of the association. Returned: always |
|
The state of the association. Returned: always Sample: |
|
Additional information about the state of the association. Returned: when available Sample: |
|
ID of the internet gateway or virtual private gateway. Returned: when route table is a gateway route table Sample: |
|
Whether this is the main route table. Returned: always Sample: |
|
ID of association between route table and subnet. Returned: always Sample: |
|
ID of the route table. Returned: always Sample: |
|
ID of the subnet. Returned: when route table is a subnet route table Sample: |
|
ID of the route table (same as route_table_id for backwards compatibility). Returned: always Sample: |
|
List of Virtual Private Gateways propagating routes. Returned: always Sample: |
|
ID of the route table. Returned: always Sample: |
|
List of routes in the route table. Returned: always |
|
ID of the Carrier gateway. Returned: when the route is via a Carrier gateway Sample: |
|
IPv4 CIDR block of destination Returned: always Sample: |
|
IPv6 CIDR block of destination Returned: when the route includes an IPv6 destination Sample: |
|
ID of the gateway. Returned: when gateway is local or internet gateway Sample: |
|
ID of a NAT instance. Returned: when the route is via an EC2 instance Sample: |
|
AWS account owning the NAT instance. Returned: when the route is via an EC2 instance Sample: |
|
ID of the NAT gateway. Returned: when the route is via a NAT gateway Sample: |
|
mechanism through which the route is in the table. Returned: always Sample: |
|
state of the route. Returned: always Sample: |
|
Tags applied to the route table. Returned: always Sample: |
|
ID for the VPC in which the route lives. Returned: always Sample: |