Skip to content

Latest commit

 

History

History
177 lines (131 loc) · 13.5 KB

README.md

File metadata and controls

177 lines (131 loc) · 13.5 KB

Amazon AWS Collection

The Ansible Amazon AWS collection includes a variety of Ansible content to help automate the management of AWS instances. This collection is maintained by the Ansible cloud team.

AWS related modules and plugins supported by the Ansible community are in the community.aws collection.

Ansible version compatibility

This collection has been tested against following Ansible versions: >=2.9.10.

Plugins and modules within a collection may be tested with only specific Ansible versions. A collection may contain metadata that identifies these versions. PEP440 is the schema used to describe the versions of Ansible.

Python version compatibility

As the AWS SDK for Python (Boto3 and Botocore) has ceased supporting Python 2.7, this collection requires Python 3.6 or greater.

AWS SDK version compatibility

Starting with the 2.0.0 releases of amazon.aws and community.aws, it is generally the collection's policy to support the versions of botocore and boto3 that were released 12 months prior to the most recent major collection release, following semantic versioning (for example, 2.0.0, 3.0.0).

Version 4.0.0 of this collection supports boto3 >= 1.17.0 and botocore >= 1.20.0

All support for the original AWS SDK boto was removed in release 4.0.0.

Included content

Inventory plugins

Name Description
amazon.aws.aws_ec2 EC2 inventory source
amazon.aws.aws_rds rds instance source

Lookup plugins

Name Description
amazon.aws.aws_account_attribute Look up AWS account attributes.
amazon.aws.aws_secret Look up secrets stored in AWS Secrets Manager.
amazon.aws.aws_service_ip_ranges Look up the IP ranges for services provided in AWS such as EC2 and S3.
amazon.aws.aws_ssm Get the value for a SSM parameter or all parameters under a path.

Modules

Name Description
amazon.aws.aws_az_info Gather information about availability zones in AWS.
amazon.aws.aws_caller_info Get information about the user and account being used to make AWS calls.
amazon.aws.aws_s3 manage objects in S3.
amazon.aws.cloudformation Create or delete an AWS CloudFormation stack
amazon.aws.cloudformation_info Obtain information about an AWS CloudFormation stack
amazon.aws.ec2 create, terminate, start or stop an instance in ec2
amazon.aws.ec2_ami Create or destroy an image (AMI) in ec2
amazon.aws.ec2_ami_info Gather information about ec2 AMIs
amazon.aws.ec2_eni Create and optionally attach an Elastic Network Interface (ENI) to an instance
amazon.aws.ec2_eni_info Gather information about ec2 ENI interfaces in AWS
amazon.aws.ec2_group maintain an ec2 VPC security group.
amazon.aws.ec2_group_info Gather information about ec2 security groups in AWS.
amazon.aws.ec2_instance Create & manage EC2 instances
amazon.aws.ec2_instance_info Gather information about ec2 instances in AWS
amazon.aws.ec2_key create or delete an ec2 key pair
amazon.aws.ec2_metadata_facts gathers facts (instance metadata) about remote hosts within EC2
amazon.aws.ec2_snapshot Creates a snapshot from an existing volume
amazon.aws.ec2_snapshot_info Gather information about ec2 volume snapshots in AWS
amazon.aws.ec2_spot_instance request, stop, reboot or cancel spot instance
amazon.aws.ec2_spot_instance_info Gather information about ec2 spot instance requests
amazon.aws.ec2_tag create and remove tags on ec2 resources
amazon.aws.ec2_tag_info list tags on ec2 resources
amazon.aws.ec2_vol Create and attach a volume, return volume id and device map
amazon.aws.ec2_vol_info Gather information about ec2 volumes in AWS
amazon.aws.ec2_vpc_dhcp_option Manages DHCP Options, and can ensure the DHCP options for the given VPC match what's requested
amazon.aws.ec2_vpc_dhcp_option_info Gather information about dhcp options sets in AWS
amazon.aws.ec2_vpc_endpoint Create and delete AWS VPC Endpoints.
amazon.aws.ec2_vpc_endpoint_info Retrieves AWS VPC endpoints details using AWS methods.
amazon.aws.ec2_vpc_endpoint_service_info retrieves AWS VPC endpoint service details
amazon.aws.ec2_vpc_igw Manage an AWS VPC Internet gateway
amazon.aws.ec2_vpc_igw_info Gather information about internet gateways in AWS
amazon.aws.ec2_vpc_nat_gateway Manage AWS VPC NAT Gateways.
amazon.aws.ec2_vpc_nat_gateway_info Retrieves AWS VPC Managed Nat Gateway details using AWS methods.
amazon.aws.ec2_vpc_net Configure AWS virtual private clouds
amazon.aws.ec2_vpc_net_info Gather information about ec2 VPCs in AWS
amazon.aws.ec2_vpc_route_table Manage route tables for AWS virtual private clouds
amazon.aws.ec2_vpc_route_table_info Gather information about ec2 VPC route tables in AWS
amazon.aws.ec2_vpc_subnet Manage subnets in AWS virtual private clouds
amazon.aws.ec2_vpc_subnet_info Gather information about ec2 VPC subnets in AWS
amazon.aws.elb_classic_lb creates, updates or destroys an Amazon ELB.
amazon.aws.s3_bucket Manage S3 buckets in AWS, DigitalOcean, Ceph, Walrus, FakeS3 and StorageGRID

Installing this collection

You can install the AWS collection with the Ansible Galaxy CLI:

ansible-galaxy collection install amazon.aws

You can also include it in a requirements.yml file and install it with ansible-galaxy collection install -r requirements.yml, using the format:

---
collections:
  - name: amazon.aws

The python module dependencies are not installed by ansible-galaxy. They can be manually installed using pip:

pip install requirements.txt

or:

pip install boto3 botocore

Using this collection

You can either call modules by their Fully Qualified Collection Namespace (FQCN), such as amazon.aws.ec2_instance, or you can call modules by their short name if you list the amazon.aws collection in the playbook's collections keyword:

---
  - name: Setup an instance for testing
    amazon.aws.ec2_instance:
      name: '{{ resource_prefix }}'
      instance_type: t2.nano
      image_id: "{{ (amis.images | sort(attribute='creation_date') | last).image_id }}"
      wait: yes
      volumes:
        - device_name: /dev/xvda
          ebs:
            volume_size: 8
            delete_on_termination: true
    register: instance

NOTE: For Ansible 2.9, you may not see deprecation warnings when you run your playbooks with this collection. Use this documentation to track when a module is deprecated.

See Also:

Contributing to this collection

We welcome community contributions to this collection. If you find problems, please open an issue or create a PR against the Amazon AWS collection repository. See Contributing to Ansible-maintained collections for more details.

You can also join us on:

More information about contributing

Release notes

Roadmap

More information

Licensing

GNU General Public License v3.0 or later.

See COPYING to see the full text.