无法将默认 ruby 版本从 Ansible duo 设置到 bash 环境

Can not set default ruby version from Ansible duo to the bash environment

我正在使用 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"

但这一切returns

"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,但它们不起作用。

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

为什么不 运行 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'"