ansible / ansible.builtin / v2.9.13 / module / ec2_eip manages EC2 elastic IP (EIP) addresses. | "added in version" 1.4 of ansible.builtin" Authors: Rick Mendes (@rickmendes) <rmendes@illumina.com> stableinterface | supported by communityansible.builtin.ec2_eip (v2.9.13) — module
pip
Install with pip install ansible==2.9.13
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 ec2_eip: device_id: i-1212f003 ip: 93.184.216.119
- name: associate an elastic IP with a device ec2_eip: device_id: eni-c8ad70f3 ip: 93.184.216.119
- name: associate an elastic IP with a device and allow reassociation ec2_eip: device_id: eni-c8ad70f3 public_ip: 93.184.216.119 allow_reassociation: yes
- name: disassociate an elastic IP from an instance ec2_eip: device_id: i-1212f003 ip: 93.184.216.119 state: absent
- name: disassociate an elastic IP with a device 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 ec2_eip: device_id: i-1212f003
- name: allocate a new elastic IP without associating it to anything ec2_eip: state: present register: eip
- name: output the IP debug: msg: "Allocated IP is {{ eip.public_ip }}"
- name: provision new instances with ec2 ec2: keypair: mykey instance_type: c1.medium image: ami-40603AD1 wait: yes group: webserver count: 3 register: ec2
- name: associate new elastic IPs with each of the instances ec2_eip: device_id: "{{ item }}" loop: "{{ ec2.instance_ids }}"
- name: allocate a new elastic IP inside a VPC in us-west-2 ec2_eip: region: us-west-2 in_vpc: yes register: eip
- name: output the IP debug: msg: "Allocated IP inside a VPC is {{ eip.public_ip }}"
- name: allocate eip - reuse unallocated ips (if found) with FREE tag ec2_eip: region: us-east-1 in_vpc: yes reuse_existing_ip_allowed: yes tag_name: FREE
- name: allocate eip - reuse unallocted ips if tag reserved is nope ec2_eip: region: us-east-1 in_vpc: yes reuse_existing_ip_allowed: yes tag_name: reserved tag_value: nope
- name: allocate new eip - from servers given ipv4 pool ec2_eip: region: us-east-1 in_vpc: yes public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
- name: allocate eip - from a given pool (if no free addresses where dev-servers tag is dynamic) ec2_eip: region: us-east-1 in_vpc: yes reuse_existing_ip_allowed: yes 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 ec2_eip: region: us-east-1 in_vpc: yes reuse_existing_ip_allowed: yes tag_name: reserved_for tag_value: "{{ inventory_hostname }}" public_ipv4_pool: ipv4pool-ec2-0588c9b75a25d1a02
state: choices: - present - absent default: present description: - If present, allocate an EIP or associate an existing EIP with a device. - If absent, disassociate the EIP from the device and optionally release it. in_vpc: default: 'no' description: - Allocate an EIP inside a VPC or not. Required if specifying an ENI. type: bool version_added: '1.4' version_added_collection: ansible.builtin 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: default: 'no' description: - When reuse_existing_ip_allowed is true, supplement with this option to only reuse an Elastic IP if it is tagged with tag_name. version_added: '2.9' version_added_collection: ansible.builtin 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 version_added: '2.0' version_added_collection: ansible.builtin public_ip: aliases: - ip description: - The IP address of a previously allocated EIP. - If present and device is specified, the EIP is associated with the device. - If absent and device is specified, the EIP is disassociated from the device. tag_value: default: 'no' description: - Supplements tag_name but also checks that the value of the tag provided in tag_name matches tag_value. matches the tag_value version_added: '2.9' version_added_collection: ansible.builtin 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 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: default: 'no' description: - Allocates the new Elastic IP from the provided public IPv4 pool (BYOIP) only applies to newly allocated Elastic IPs, isn't validated when reuse_existing_ip_allowed is true. version_added: '2.9' version_added_collection: ansible.builtin private_ip_address: description: - The primary or secondary private IP address to associate with the Elastic IP address. version_added: '2.3' version_added_collection: ansible.builtin allow_reassociation: default: 'no' 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 version_added: '2.5' version_added_collection: ansible.builtin release_on_disassociation: default: 'no' description: - whether or not to automatically release the EIP when it is disassociated type: bool version_added: '2.0' version_added_collection: ansible.builtin reuse_existing_ip_allowed: default: 'no' description: - Reuse an EIP that is not associated to a device (when available), instead of allocating a new one. type: bool version_added: '1.6' version_added_collection: ansible.builtin 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