This is for dynamic inventory for use with AWS
RHEL 7.3
python2-boto-2.45.0-3.el7.noarch
ANSIBLE VERSION
ansible 2.3.1.0
config file = /projects/robomation/ansible.cfg
configured module search path = Default w/o overrides
python version = 2.7.5 (default, Aug 2 2016, 04:20:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
I have several resources running and when i run
ec2.py --list
{
"_meta": {
"hostvars": {}
}
}
Also when i try to run ansible playbooks targeting hosts with certain tags, i get this
[WARNING]: Found both group and host with same name: localhost
...
...
...
skipping: no hosts matched
I am having issues setting up dynamic inventory to work properly. I have my ec2.ini and ec2.py files and ec2.py is set to be executable and i believe i have setup right. Also command does not return error only it returns nothing in body.
[root@robomation robomation]# env | grep ANSIBLE
ANSIBLE_HOSTS=/projects/robomation/inventory/ec2.py
[root@robomation robomation]# env | grep EC2_INI
EC2_INI_PATH=/projects/robomation/inventory/ec2.ini
[root@robomation robomation]# env | grep AWS
AWS_REGION=us-west-2
[root@robomation robomation]# inventory/ec2.py --list
{
"_meta": {
"hostvars": {}
}
}
[root@robomation robomation]# ansible --version
ansible 2.3.1.0
config file = /projects/robomation/ansible.cfg
configured module search path = Default w/o overrides
python version = 2.7.5 (default, Aug 2 2016, 04:20:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
What do i do to troubleshoot dynamic inventory?
UPDATE:
pip freeze
boto3==1.4.4
botocore==1.5.82
rpm -qa | grep boto
python2-boto-2.45.0-3.el7.noarch
The
ec2.py
dynamic inventory usesboto
to make API calls to AWS.So you might want to check if
boto
can connect to AWS by running:if you get something like this:
your credentials are not correct. There are several ways to configure boto. But for debugging purposes you could simple set
AWS_ACCESS_KEY_ID
and `AWS_SECRET_ACCESS_KEY' via command line like this:When using
IAM roles
you should note that: