I have a role I'm testing that will install Redmine (www.redmine.org) on to 
a RHEL 7.8 machine.  Redmine requires Ruby >= 2.3.  So I'm installing Ruby 
2.6.2 via the rhel-server-rhscl-7-rpms repository.  If I log into the 
machine manually and check the Ruby version, its 2.6.2.  However, when I 
connect via my Ansible playbook, Ruby is the default 2.0, so I can't get 
any of the Ruby Gems to install since the version is too old.

Here's the relevant plays/errors:
The /etc/profile.d/enableruby26.sh, as installed by another role i wrote 
that installs Ruby 2.6.2 and uploads this script to /etc/profile.d:

#!/bin/bash
source scl_source enable rh-ruby26

Play:
- name: Make sure to run the newer Ruby if necessary
  shell: source /etc/profile.d/enableruby26.sh
  when: ansible_os_family == 'RedHat' and 
ansible_distribution_major_version == '7'


Errors:
TASK [redmine : Verify Ruby version] 
***************************************************************************
changed: [role-test]

TASK [redmine : Print Ruby version] 
****************************************************************************
ok: [role-test] => {
    "msg": "ruby 2.0.0p648 (2015-12-16) [x86_64-linux]"
}

TASK [redmine : Obtain gem path] 
*******************************************************************************
changed: [role-test]

TASK [redmine : Print gem path] 
********************************************************************************
ok: [role-test] => {
    "msg": "/bin/gem"
}

TASK [redmine : Install latest Bundler gem (RHEL 7)] 
***********************************************************
fatal: [role-test]: FAILED! => {"changed": false, "cmd": 
"/opt/rh/rh-ruby26/root/usr/bin/gem query --remote -n '^bundler$'", "msg": 
"/opt/rh/rh-ruby26/root/usr/bin/ruby: error while loading shared libraries: 
libruby.so.2.6: cannot open shared object file: No such file or directory", 
"rc": 127, "stderr": "/opt/rh/rh-ruby26/root/usr/bin/ruby: error while 
loading shared libraries: libruby.so.2.6: cannot open shared object file: 
No such file or directory\n", "stderr_lines": 
["/opt/rh/rh-ruby26/root/usr/bin/ruby: error while loading shared 
libraries: libruby.so.2.6: cannot open shared object file: No such file or 
directory"], "stdout": "", "stdout_lines": []}

So, how do I get the /etc/profile.d/enableruby26.sh to run and have its 
variables available within my Ansible playbook?

Thanks,
Harry

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/d5eff318-a054-4109-88ef-2a3ebffa0eb7%40googlegroups.com.

Reply via email to