Streisand: MacOSX (Ansible 2.3.2) - boto required for this module

Created on 8 Sep 2017  路  12Comments  路  Source: StreisandEffect/streisand

Hi.

We are trying to run Streisand but it seems that there is something wrong with our setup, because the program fails trying to setup de EC2 Security group. Do you know how we can solve this?

TASK [ec2-security-group : Create the EC2 security group] *************************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "boto required for this module"}
to retry, use: --limit @/.../streisand/playbooks/amazon.retry

fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "boto required for this module"}

We have installed different Python environment with penv even the installation of pip and boto succeeded, Streisand fails with the same output.

What we can do?

Best,

Additional Details:

Target Cloud Provider:

AWS

Operating System of target host:

Whatever Streisand needs ;-)

Operating System of client:

10.12.6

Version of Ansible, using ansible --version :

ansible 2.3.2.0
config file = /.../streisand/ansible.cfg
configured module search path = Default w/o overrides
python version = 2.7.13 (default, Jul 18 2017, 09:17:00) [GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)]

Output from git rev-parse HEAD in your Streisand directory :

9cc2f5478ec8dd235971e0b690afcd0f3c319f0b

areansible kinclient provideamazon statuhelp-wanted

Most helpful comment

It worked!
Finally we released an EIP and run again streisand and the instance booted up perfectly retrieving the free IP! ;-)
Thanks!

All 12 comments

@cougil, can you share the commands you used to set up your environment?

@cougil Can you also share the output of pip show boto ? Is there any output running python -c "import boto"?

Oddly enough I ran into this problem after I ran a brew upgrade.

Running sudo pip install boto resolved the problem.

What I did is just following the instructions to install a new environment using pyenv and then setting up the new environment to be used by the current shell.

We are still having the same issue, after install pip with your approach.

The output of pip show boto is:

Name: boto
Version: 2.48.0
Summary: Amazon Web Services Library
Home-page: https://github.com/boto/boto/
Author: Mitch Garnaat
Author-email: [email protected]
License: MIT
Location: /...MY_HOME.../.pyenv/versions/3.6.2/lib/python3.6/site-packages
Requires:

The command python -c "import boto" does not return anything

@alimakki noticed that the output of pip show boto shows a Python 3 module. Could you reconfigure your venv to use Python 2, and let us know if that works?

It鈥檚 a shame pyenv isn鈥檛 installable through pip.

Great!
It seems that the problem was that we tried to run the environment using Python 3, because after setting up a new Python 2 environment (using pyenv) it has worked (after installing pip and pycurl) ;-)

Now the problem we have is another (it seems we reached the maximum number of Elastic IPs we can have):

...
TASK [genesis-amazon : Allocate and associate Elastic IP] **************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "EC2ResponseError: 400 Bad Request\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response><Errors><Error><Code>AddressLimitExceeded</Code><Message>The maximum number of addresses has been reached.</Message></Error></Errors><RequestID>xxx.xxxxx.xxx</RequestID></Response>"}
    to retry, use: --limit @....../streisand/playbooks/amazon.retry

PLAY RECAP *************************************************************************************************************************************************************************************************
localhost                  : ok=20   changed=12   unreachable=0    failed=1

Best,

Yeah, you can call them to have the limit lifted. It鈥檚 there to keep you from accidentally creating Elastic IPs and accidentally never freeing them.

Yes, I was thinking on reviewing the Elastic IPs and see if we can freeing someone.
Meanwhile, I haven't seen any _generated-docs_ folder ,... so I don't know where to connect or how. It is impossible to proceed without an EIP?

One thing to try: create a new instance, and run streisand with the localhost option. This does not require an EIP, but it also can鈥檛 configure your network for you. You鈥檒l have to manually open ports on your VPC.

If you鈥檇 like all the dependencies, there鈥檚 a cloud-init/shell script.

It worked!
Finally we released an EIP and run again streisand and the instance booted up perfectly retrieving the free IP! ;-)
Thanks!

I鈥檓 glad it鈥檚 working. I鈥檓 going to close this for now; you can reopen if either problem reoccurs.

@cougil @nopdotcom @alimakki Thanks everyone! Glad to hear this got sorted out.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

juneyao picture juneyao  路  6Comments

markwyner picture markwyner  路  3Comments

alphazo picture alphazo  路  5Comments

sudoyum999 picture sudoyum999  路  4Comments

hamidzr picture hamidzr  路  3Comments