Ansible: Migrating from ec2.py to aws_ec2
Scroll DownI very recently had to update a project to use the new aws_ec2 plugin, after the ec2.py script stopped working in Ansible 2.10. If you (like me), just used the python script just for for EC2 inventory, then the following template for your aws_ec2 configuration file should work.
plugin: aws_ec2
regions:
- us-east-1
- us-east-2
- us-west-1
- ap-southeast-1
- eu-central-1
- eu-west-2
filters:
instance-state-name: running
hostnames:
- private-ip-address
keyed_groups:
- prefix: tag
key: tags
Add the template into your top-level inventories file. Then in the ansible.cfg file you will want to enable the plugin for the project. This can be done with the following line:
[defaults]
enable_plugins = aws_ec2
Finally, the most important thing (for me) was that the current region is no longer ec2_region. The new variable is placement.region. Once you’ve addded the two files and updated your usages of ec2_region, you’re good to go!
This took me a few hours to figure out fully, so I hope I’ve saved you some time!