无法将Ansible duo中的默认ruby版本设置为bash环境

时间:2016-01-16 19:05:44

标签: ruby rvm ansible

我正在使用Ansible来设置RVM,Ruby并且我在RVM的路径上遇到了一些问题。

我也从Ansible Galaxy查看,并从这个例子中学习https://github.com/newmen/ansible-rvm/blob/master/tasks/select_ruby.yml

我想设置默认的ruby版本

- name: set using ruby 2.1.1 by default
  shell: "{{ rvm_path }}/rvm use {{ ruby_ver }} --default executable=/bin/bash"

甚至

- name: set using ruby 2.1.1 by default
  shell: "source /home/ubuntu/.rvm/scripts/rvm && source /home/ubuntu/.profile && {{ rvm_path }}/rvm use {{ ruby_ver }} --default executable=/bin/bash"

但它全部返回

"stderr": "RVM is not a function, selecting rubies with 'rvm use ...' will not work.\n\nYou need to change your terminal emulator preferences to allow login shell.\nSometimes it is required to use `/bin/bash --login` as the command

据我所知,Ansible无法加载bash环境,因此无法完全使用rvm函数。

我尝试使用Ansible 1.9.x以及最新的2.x,但它们无效。

我应该使用哪种参数或调整?

1 个答案:

答案 0 :(得分:3)

为什么不运行bash --login -c 'your rvm command',所以在您的示例中:

- name: set using ruby 2.1.1 by default
  shell: "/bin/bash --login -c '{{ rvm_path }}/rvm use {{ ruby_ver }} --default executable=/bin/bash'"