community / community.aws / 1.1.0 / module / ec2_eip manages EC2 elastic IP (EIP) addresses. | "added in version" 1.0.0 of community.aws" Authors: Rick Mendes (@rickmendes) <rmendes@illumina.com>community.aws.ec2_eip (1.1.0) — module
Install with ansible-galaxy collection install community.aws:==1.1.0
collections: - name: community.aws version: 1.1.0
This module can allocate or release an EIP.
This module can associate/disassociate an EIP with instances or network interfaces.
# Note: These examples do not set authentication details, see the AWS Guide for details. - name: associate an elastic IP with an instance community.aws.ec2_eip: device_id: i-1212f003 ip: 93.184.216.119
- name: associate an elastic IP with a device community.aws.ec2_eip: device_id: eni-c8ad70f3 ip: 93.184.216.119
- name: associate an elastic IP with a device and allow reassociation community.aws.ec2_eip: device_id: eni-c8ad70f3 public_ip: 93.184.216.119 allow_reassociation: true
- name: disassociate an elastic IP from an instance community.aws.ec2_eip: device_id: i-1212f003 ip: 93.184.216.119 state: absent
- name: disassociate an elastic IP with a device community.aws.ec2_eip: device_id: eni-c8ad70f3 ip: 93.184.216.119 state: absent
- name: allocate a new elastic IP and associate it with an instance community.aws.ec2_eip: device_id: i-1212f003
- name: allocate a new elastic IP without associating it to anything community.aws.ec2_eip: state: present register: eip
- name: output the IP ansible.builtin.debug: msg: "Allocated IP is {{ eip.public_ip }}"
- name: provision new instances with ec2 amazon.aws.ec2: keypair: mykey instance_type: c1.medium image: ami-40603AD1 wait: true group: webserver count: 3 register: ec2
- name: associate new elastic IPs with each of the instances community.aws.ec2_eip: device_id: "{{ item }}" loop: "{{ ec2.instance_ids }}"
- name: allocate a new elastic IP inside a VPC in us-west-2 community.aws.ec2_eip: region: us-west-2 in_vpc: true register: eip
- name: output the IP ansible.builtin.debug: msg: "Allocated IP inside a VPC is {{ eip.public_ip }}"
- name: allocate eip - reuse unallocated ips (if found) with FREE tag community.aws.ec2_eip: region: us-east-1 in_vpc: true reuse_existing_ip_allowed: true tag_name: FREE
- name: allocate eip - reuse unallocated ips if tag reserved is nope community.aws.ec2_eip: region: us-east-1 in_vpc: true reuse_existing_ip_allowed: true tag_name: reserved tag_value: nope
- name: allocate new eip - from servers given ipv4 pool community.aws.ec2_eip: region: us-east-1 in_vpc: true public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
- name: allocate eip - from a given pool (if no free addresses where dev-servers tag is dynamic) community.aws.ec2_eip: region: us-east-1 in_vpc: true reuse_existing_ip_allowed: true tag_name: dev-servers public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
- name: allocate eip from pool - check if tag reserved_for exists and value is our hostname community.aws.ec2_eip: region: us-east-1 in_vpc: true reuse_existing_ip_allowed: true tag_name: reserved_for tag_value: "{{ inventory_hostname }}" public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
state: choices: - present - absent default: present description: - When C(state=present), allocate an EIP or associate an existing EIP with a device. - When C(state=absent), disassociate the EIP from the device and optionally release it. type: str in_vpc: default: false description: - Allocate an EIP inside a VPC or not. - Required if specifying an ENI with I(device_id). type: bool region: aliases: - aws_region - ec2_region description: - The AWS region to use. - For global services such as IAM, Route53 and CloudFront, I(region) is ignored. - The C(AWS_REGION) or C(EC2_REGION) environment variables may also be used. - See the Amazon AWS documentation for more information U(http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region). - The C(ec2_region) alias has been deprecated and will be removed in a release after 2024-12-01 - Support for the C(EC2_REGION) environment variable has been deprecated and will be removed in a release after 2024-12-01. type: str profile: aliases: - aws_profile description: - A named AWS profile to use for authentication. - See the AWS documentation for more information about named profiles U(https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html). - The C(AWS_PROFILE) environment variable may also be used. - The I(profile) option is mutually exclusive with the I(aws_access_key), I(aws_secret_key) and I(security_token) options. type: str tag_name: description: - When I(reuse_existing_ip_allowed=true), supplement with this option to only reuse an Elastic IP if it is tagged with I(tag_name). type: str device_id: aliases: - instance_id description: - The id of the device for the EIP. Can be an EC2 Instance id or Elastic Network Interface (ENI) id. required: false type: str public_ip: aliases: - ip description: - The IP address of a previously allocated EIP. - When I(public_ip=present) and device is specified, the EIP is associated with the device. - When I(public_ip=absent) and device is specified, the EIP is disassociated from the device. type: str tag_value: description: - Supplements I(tag_name) but also checks that the value of the tag provided in I(tag_name) matches I(tag_value). type: str access_key: aliases: - aws_access_key_id - aws_access_key - ec2_access_key description: - AWS access key ID. - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys). - The C(AWS_ACCESS_KEY_ID), C(AWS_ACCESS_KEY) or C(EC2_ACCESS_KEY) environment variables may also be used in decreasing order of preference. - The I(aws_access_key) and I(profile) options are mutually exclusive. - The I(aws_access_key_id) alias was added in release 5.1.0 for consistency with the AWS botocore SDK. - The I(ec2_access_key) alias has been deprecated and will be removed in a release after 2024-12-01. - Support for the C(EC2_ACCESS_KEY) environment variable has been deprecated and will be removed in a release after 2024-12-01. type: str aws_config: description: - A dictionary to modify the botocore configuration. - Parameters can be found in the AWS documentation U(https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config). type: dict secret_key: aliases: - aws_secret_access_key - aws_secret_key - ec2_secret_key description: - AWS secret access key. - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys). - The C(AWS_SECRET_ACCESS_KEY), C(AWS_SECRET_KEY), or C(EC2_SECRET_KEY) environment variables may also be used in decreasing order of preference. - The I(secret_key) and I(profile) options are mutually exclusive. - The I(aws_secret_access_key) alias was added in release 5.1.0 for consistency with the AWS botocore SDK. - The I(ec2_secret_key) alias has been deprecated and will be removed in a release after 2024-12-01. - Support for the C(EC2_SECRET_KEY) environment variable has been deprecated and will be removed in a release after 2024-12-01. type: str endpoint_url: aliases: - ec2_url - aws_endpoint_url - s3_url description: - 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 C(AWS_URL) or C(EC2_URL) environment variables may also be used, in decreasing order of preference. - The I(ec2_url) and I(s3_url) aliases have been deprecated and will be removed in a release after 2024-12-01. - Support for the C(EC2_URL) environment variable has been deprecated and will be removed in a release after 2024-12-01. type: str wait_timeout: description: - The I(wait_timeout) option does nothing and will be removed after 2022-06-01 type: int aws_ca_bundle: description: - The location of a CA Bundle to use when validating SSL certificates. - The C(AWS_CA_BUNDLE) environment variable may also be used. type: path session_token: aliases: - aws_session_token - security_token - aws_security_token - access_token description: - AWS STS session token for use with temporary credentials. - See the AWS documentation for more information about access tokens U(https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys). - The C(AWS_SESSION_TOKEN), C(AWS_SECURITY_TOKEN) or C(EC2_SECURITY_TOKEN) environment variables may also be used in decreasing order of preference. - The I(security_token) and I(profile) options are mutually exclusive. - Aliases I(aws_session_token) and I(session_token) were added in release 3.2.0, with the parameter being renamed from I(security_token) to I(session_token) in release 6.0.0. - The I(security_token), I(aws_security_token), and I(access_token) aliases have been deprecated and will be removed in a release after 2024-12-01. - Support for the C(EC2_SECRET_KEY) and C(AWS_SECURITY_TOKEN) environment variables has been deprecated and will be removed in a release after 2024-12-01. type: str validate_certs: default: true description: - When set to C(false), SSL certificates will not be validated for communication with the AWS APIs. - Setting I(validate_certs=false) is strongly discouraged, as an alternative, consider setting I(aws_ca_bundle) instead. type: bool public_ipv4_pool: description: - Allocates the new Elastic IP from the provided public IPv4 pool (BYOIP) only applies to newly allocated Elastic IPs, isn't validated when I(reuse_existing_ip_allowed=true). type: str private_ip_address: description: - The primary or secondary private IP address to associate with the Elastic IP address. type: str allow_reassociation: default: false description: - Specify this option to allow an Elastic IP address that is already associated with another network interface or instance to be re-associated with the specified instance or interface. type: bool release_on_disassociation: default: false description: - Whether or not to automatically release the EIP when it is disassociated. type: bool reuse_existing_ip_allowed: default: false description: - Reuse an EIP that is not associated to a device (when available), instead of allocating a new one. type: bool debug_botocore_endpoint_logs: default: false description: - Use a C(botocore.endpoint) logger to parse the unique (rather than total) C("resource:action") API calls made during a task, outputing the set to the resource_actions key in the task results. Use the C(aws_resource_action) callback to output to total list made during a playbook. - The C(ANSIBLE_DEBUG_BOTOCORE_LOGS) environment variable may also be used. type: bool
allocation_id: description: allocation_id of the elastic ip returned: on success sample: eipalloc-51aa3a6c type: str public_ip: description: an elastic ip address returned: on success sample: 52.88.159.209 type: str