2016-01-16 2 views
0

Я использую Ansible для установки RVM, Ruby, и у меня есть некоторые проблемы с пути RVM.Невозможно установить стандартную рубиновую версию из Ansible duo в среду bash

Я также проверить из анзибль Галактики и извлечь из этого примера https://github.com/newmen/ansible-rvm/blob/master/tasks/select_ruby.yml

Я хочу, чтобы установить версию рубиновый по умолчанию

- 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, но они не работают.

Какие параметры или настройки следует использовать?

ответ

2

Почему бы не запустить 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'" 
+0

Ваше решение работает. Теперь я использую '- command: '{{rvm_path}}/rvm alias create default ruby ​​- {{ruby_ver}}" ', и он тоже работает. Это раздражает bash env. – neo0

Смежные вопросы