I believe what you wanted to do with the pip module is actually provide state=latest. Omitting state just means state=present which satisfies pip if any current version is installed.
latest invokes pip with -U which is an alias for --upgrade On Tuesday, February 17, 2015, Jilles van Gurp <[email protected]> wrote: > I just ran into an obscure issue where I actually had a version of > docker-py installed on a target system but not the latest version. Long > version below but the tldr; is that I eventually solved it with a manual > pip install --upgrade. > > I was looking at the pip module documentation and there's nothing about > --upgrade there. I guess I could pass it in via extra_args="--upgrade" but > this sounds like it deserves a bit more prominent mention. Also it sounds > like it might actually be a useful default even if the user specifies no > version (latest is implied) and the installed version is outdated. Either > that or it should fail because it can't get the latest version installed > unless you specify --upgrade. > > Long version: > > So, I was getting the error that > > Traceback (most recent call last): > File > "/home/linko/.ansible/tmp/ansible-tmp-1424196296.48-135783178760818/docker", > line 2422, in <module> > main() > File > "/home/linko/.ansible/tmp/ansible-tmp-1424196296.48-135783178760818/docker", > line 729, in main > docker_api_version = > dict(default=docker.client.DEFAULT_DOCKER_API_VERSION), > NameError: global name 'docker' is not defined > > When trying to run my ansible playbook that first installs docker and then > boots up a docker image. Basically it looked like I didn't have docker-py > installed; except I had. > > Actually I was installing it via a docker role: > > --- > - name: Install Python Pip > yum: name=python-pip state=latest > > - name: ensure docker is installed > yum: name=docker state=latest > > - name: Install Docker-py > pip: name=docker-py > > - name: Start docker daemon > service: name=docker state=started enabled=yes sleep=1 > > > The problem as it turned out to be, was that pip was basically > 'succeeding' with the following message: > > ok: [testing.inbot.io] => {"changed": false, "cmd": "/bin/pip install > docker-py", "name": "docker-py", "requirements": null, "state": "present", > "stderr": "", "stdout": "Requirement already satisfied (use --upgrade to > upgrade): docker-py in /usr/lib/python2.7/site-packages\nRequirement > already satisfied (use --upgrade to upgrade): requests>=2.2.1,<2.5.0 in > /usr/lib/python2.7/site-packages (from docker-py)\nRequirement already > satisfied (use --upgrade to upgrade): six>=1.3.0 in > /usr/lib/python2.7/site-packages (from docker-py)\nRequirement already > satisfied (use --upgrade to upgrade): websocket-client>=0.11.0 in > /usr/lib/python2.7/site-packages (from docker-py)\nRequirement already > satisfied (use --upgrade to upgrade): backports.ssl-match-hostname in > /usr/lib/python2.7/site-packages (from > websocket-client>=0.11.0->docker-py)\nCleaning up...\n", "version": null, > "virtualenv": null} > > Solution: > > sudo pip install docker-py --upgrade > > After that everything works as it is supposed to. > > -- > 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] > <javascript:_e(%7B%7D,'cvml','ansible-project%[email protected]');> > . > To post to this group, send email to [email protected] > <javascript:_e(%7B%7D,'cvml','[email protected]');>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/fd9826b2-2520-433a-a48a-f5f39ef8af9c%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/fd9826b2-2520-433a-a48a-f5f39ef8af9c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Matt Martz @sivel sivel.net -- 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/CAD8N0v_KNKuFq6dLBiUwJpE-KtjNu3c6XMVOtwLFSqmOoLiqUw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
