Hi,

 I am running following stack for ansible :

Ansible Tower 3.0.2
Ansible 2.1.1.0 (that comes default on Tower 3.0.2)

Below is the output of pip freeze on Ansible Tower CentOS 6.8 machine which 
shows any python packages that are there on my Ansible Tower image : 

ansible==2.1.1.0
anyjson==0.3.3
apache-libcloud==0.20.1
appdirs==1.4.0
argparse==1.4.0
awacs==0.6.0
azure==2.0.0rc2
azure-common==1.1.2
azure-graphrbac==0.30.0rc2
azure-mgmt==0.30.0rc2
azure-mgmt-authorization==0.30.0rc2
azure-mgmt-cdn==0.30.0rc2
azure-mgmt-compute==0.30.0rc2
azure-mgmt-logic==0.30.0rc2
azure-mgmt-network==0.30.0rc2
azure-mgmt-notificationhubs==0.30.0rc2
azure-mgmt-nspkg==1.0.0
azure-mgmt-redis==0.30.0rc2
azure-mgmt-resource==0.30.0rc2
azure-mgmt-scheduler==0.30.0rc2
azure-mgmt-storage==0.30.0rc2
azure-mgmt-web==0.30.0rc2
azure-nspkg==1.0.0
azure-servicebus==0.20.1
azure-servicemanagement-legacy==0.20.2
azure-storage==0.30.0
Babel==2.2.0
backports.ssl-match-hostname==3.5.0.1
begins==0.9
boto==2.43.0
certifi==2016.8.31
cffi==1.7.0
chardet==2.3.0
cliff==1.15.0
cmd2==0.6.8
cryptography==1.3.2
debtcollector==1.2.0
decorator==4.0.6
dogpile.cache==0.5.7
dogpile.core==0.4.1
enum34==1.1.6
ethtool==0.6
funcsigs==0.4
functools-total-ordering-monkeypatch==1.0
futures==3.0.4
httplib2==0.9.2
idna==2.0
importlib==1.0.3
iniparse==0.3.1
ip-associations-python-novaclient-ext==0.1
ipaddress==1.0.16
iso8601==0.1.11
isodate==0.5.1
Jinja2==2.8
jsonpatch==1.12
jsonpointer==1.10
jsonschema==2.5.1
keyring==4.1
keystoneauth1==2.12.1
lxml==3.4.4
M2Crypto==0.20.2
MarkupSafe==0.23
meld3==0.6.7
mercurial==1.4
mock==1.0.1
monotonic==0.6
msgpack-python==0.4.7
msrest==0.2.0
msrestazure==0.2.1
munch==2.0.4
netaddr==0.7.18
netifaces==0.10.4
oauthlib==1.1.2
ordereddict==1.2
os-client-config==1.14.0
os-diskconfig-python-novaclient-ext==0.1.3
os-networksv2-python-novaclient-ext==0.25
os-virtual-interfacesv2-python-novaclient-ext==0.19
oslo.config==3.3.0
oslo.i18n==3.2.0
oslo.serialization==2.2.0
oslo.utils==3.4.0
paramiko==1.7.5
pbr==1.8.1
pciutils==1.7.3
policycoreutils-default-encoding==0.1
positional==1.1.1
prettytable==0.7.2
psphere==0.5.2
psutil==3.1.1
psycopg2==2.6.2
pyasn1==0.1.9
pycparser==2.14
pycrypto==2.6.1
pycurl==7.19.0
pygpgme==0.1
pykerberos==1.1.13
pyOpenSSL==0.15.1
pyparsing==2.0.7
pyrax==1.9.7
python-cinderclient==1.5.0
python-dateutil==2.4.0
python-dmidecode==3.10.13
python-glanceclient==1.1.0
python-heatclient==0.8.1
python-ironicclient==1.0.0
python-keyczar==0.71rc0
python-keystoneclient==2.1.1
python-neutronclient==4.0.0
python-novaclient==3.2.0
python-ntlm3==1.0.2
python-openstackclient==2.0.0
python-swiftclient==2.7.0
python-troveclient==1.4.0
pytz==2015.7
pywinrm==0.2.0
PyYAML==3.11
pyzmq==14.5.0
rackspace-auth-openstack==1.3
rackspace-novaclient==1.5
rax-default-network-flags-python-novaclient-ext==0.3.2
rax-scheduled-images-python-novaclient-ext==0.3.1
repoze.lru==0.6
requests==2.5.1
requests-kerberos==0.10.0
requests-ntlm==0.3.0
requests-oauthlib==0.6.2
requestsexceptions==1.1.1
rhnlib==2.5.55
setools==1.0
shade==1.4.0
simplejson==3.8.1
six==1.9.0
stevedore==1.10.0
suds==0.4
supervisor==3.0
total-ordering==0.1.0
troposphere==1.9.0
unicodecsv==0.14.1
urlgrabber==3.9.1
virtualenv==1.10.1
warlock==1.2.0
wrapt==1.10.6
xmltodict==0.9.2
yum-metadata-parser==1.1.2


Problem :    

I have some ansible playbook that depend on ansible module 
"cloudformation_stack_facts" which is not a standard core module from 
Ansible 2.1.1.0 that comes with Ansible Tower.
Now since I wanted to use unreleased module, I followed steps from 
: 
https://support.ansible.com/hc/en-us/articles/204229188-Use-an-unreleased-module-from-Ansible-source-with-Tower
 
to use that with my ansible tower project.
However when I run my ansible playbook using Tower, I run into error with 
Boto during Job run:

TASK [aws_groups : get vpc stack outputs] 
************************************** task path: 
/var/lib/awx/projects/_1399__hydra_playbooks/hydra_deploy/ansible/roles/aws_groups/tasks/vpc_output.yml:2
 <127.0.0.1> 
ESTABLISH LOCAL CONNECTION FOR USER: awx <127.0.0.1> EXEC /bin/sh -c '( 
umask 77 && mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1481245531.53-96929779053062 `" && echo 
ansible-tmp-1481245531.53-96929779053062="` echo 
$HOME/.ansible/tmp/ansible-tmp-1481245531.53-96929779053062 `" ) && sleep 0' 
<127.0.0.1> 
PUT /tmp/tmpaBil6N TO 
/var/lib/awx/.ansible/tmp/ansible-tmp-1481245531.53-96929779053062/cloudformation_stack_facts
 <127.0.0.1> 
EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python2.6 
/var/lib/awx/.ansible/tmp/ansible-tmp-1481245531.53-96929779053062/cloudformation_stack_facts;
 
rm -rf 
"/var/lib/awx/.ansible/tmp/ansible-tmp-1481245531.53-96929779053062/" > 
/dev/null 2>&1 && sleep 0' An exception occurred during task execution. The 
full traceback is: Traceback (most recent call last): File 
"/tmp/ansible_QEgMLD/ansible_module_cloudformation_stack_facts.py", line 
96, in <module> main() File 
"/tmp/ansible_QEgMLD/ansible_module_cloudformation_stack_facts.py", line 
55, in main cfn = boto.cloudformation.connect_to_region(region) File 
"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/cloudformation/__init__.py",
 
line 55, in connect_to_region return region.connect(**kw_params) File 
"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/regioninfo.py", 
line 187, in connect return self.connection_cls(region=self, **kw_params) 
File 
"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/cloudformation/connection.py",
 
line 89, in __init__ profile_name=profile_name) File 
"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/connection.py", 
line 1100, in __init__ provider=provider) File 
"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/connection.py", 
line 569, in __init__ host, config, self.provider, 
self._required_auth_capability()) File 
"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/auth.py", line 
993, in get_auth_handler 'Check your credentials' % (len(names), 
str(names))) boto.exception.NoAuthHandlerFound: No handler was ready to 
authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your 
credentials fatal: [localhost]: FAILED! => {"changed": false, "failed": 
true, "invocation": {"module_name": "cloudformation_stack_facts"}, 
"module_stderr": "Traceback (most recent call last):\n File 
\"/tmp/ansible_QEgMLD/ansible_module_cloudformation_stack_facts.py\", line 
96, in <module>\n main()\n File 
\"/tmp/ansible_QEgMLD/ansible_module_cloudformation_stack_facts.py\", line 
55, in main\n cfn = boto.cloudformation.connect_to_region(region)\n File 
\"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/cloudformation/__init__.py\",
 
line 55, in connect_to_region\n return region.connect(**kw_params)\n File 
\"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/regioninfo.py\", 
line 187, in connect\n return self.connection_cls(region=self, 
**kw_params)\n File 
\"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/cloudformation/connection.py\",
 
line 89, in __init__\n profile_name=profile_name)\n File 
\"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/connection.py\", 
line 1100, in __init__\n provider=provider)\n File 
\"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/connection.py\", 
line 569, in __init__\n host, config, self.provider, 
self._required_auth_capability())\n File 
\"/var/lib/awx/venv/ansible/lib/python2.6/site-packages/boto/auth.py\", 
line 993, in get_auth_handler\n 'Check your credentials' % (len(names), 
str(names)))\nboto.exception.NoAuthHandlerFound: No handler was ready to 
authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your 
credentials\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": 
false} 


Looks like boto on Ansible Tower is unable to find the AWS credentials I am 
using to run my ansible job through Ansible Tower.

In Ansible Tower I have created correct AWS Credentials and I am using 
those to run my playbook job.   I am also using AWS dynamic inventory for 
EC2 in Ansible Tower and also using AWS credentials created in  Ansible 
Tower there too.    Dynamic Inventory sync is working fine in Ansible Tower.

But whenever I run the playbook job that depends on non-released module, it 
errors out saying that boto was unable to find AWS credentials for 
authentication.

I am wondering what am I doing wrong here.   Is the version of boto has to 
do something with it?     We need boto latest version to use some of our 
other playbooks that we need to run through Ansible Tower.     

Any help here is appreciated.  


-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/d73700da-f163-4452-8ae3-66f40cfb41b8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to