Perhaps there is some way the install process for bundler is done very
differently than other gems?




On Tue, Nov 19, 2013 at 1:17 PM, Adam Williams <[email protected]> wrote:

> I am running Ansible using "brew install --HEAD ansible", which currently
> prints it's version as "ansible 1.4".
>
> Here is my task:
>
> - name: install ruby gem bundler
>   gem: name=bundler state=present version=1.3.5 user_install=no
>   sudo: true
>
> When I run, it states that there is no change - bundler appears to the gem
> module to be installed??, though it is not.
>
> I went further and tried the following:
>
> ansible utilities -v --sudo -i development -m gem -a 'name=bundler
> state=present version=1.3.5 user_install=no'
>
> 192.168.10.24 | success >> {
>
>     "changed": false,
>
>     "name": "bundler",
>
>     "state": "present",
>
>     "version": "1.3.5"
>
> }
>
> Seemingly the same behavior. If I run without --sudo:
>
> ansible utilities -v -i development -m gem -a 'name=bundler state=present
> version=1.3.5 user_install=no'
>
> 192.168.10.24 | FAILED >> {
>
>     "cmd": [
>
>         "/usr/bin/gem",
>
>         "install",
>
>         "--version",
>
>         "1.3.5",
>
>         "--include-dependencies",
>
>         "--no-user-install",
>
>         "--no-rdoc",
>
>         "--no-ri",
>
>         "bundler"
>
>     ],
>
>     "failed": true,
>
>     "msg": "ERROR:  While executing gem ... (Gem::FilePermissionError)\n
>   You don't have write permissions into the /var/lib/gems/1.9.1
> directory.",
>
>     "rc": 1,
>
>     "stderr": "ERROR:  While executing gem ...
> (Gem::FilePermissionError)\n    You don't have write permissions into the
> /var/lib/gems/1.9.1 directory.\n",
>
>     "stdout": "INFO:  `gem install -y` is now default and will be
> removed\nINFO:  use --ignore-dependencies to install only the gems you
> list\n"
>
> }
>
> I made the effort of running the "gem" module manually on the target host
> by setting ANSIBLE_KEEP_REMOTE_FILES=true and then running "sudo
> /usr/bin/python
> /home/vagrant/.ansible/tmp/ansible-1384877605.76-187131457818350/gem". That
> worked great by installing bundler.
>
> I have also made an attempt to discover what the "gem" python script is
> doing in the filesystem during a playbook run and during a manual run, as
> described, by using auditd. You can see the output over here:
> https://gist.github.com/aiwilliams/a86bf5d3deee57f2c72d. Seems to me
> they're both working with the same directories, but otherwise I didn't get
> much indication why it behaves differently when executed by
> ansible-playbook.
>
> It's got to be an environment thing, I would have though, but it seems
> that the bash environment is the same and I've verified that the gem
> environment is the same.
>
> Any clues what might be going on?
>
> Thanks, Adam
>
> --
> 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].
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Michael DeHaan <[email protected]>
CTO, AnsibleWorks, Inc.
http://www.ansibleworks.com/

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to