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 [email protected].
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