Недавно я решил переключить свое развертывание Ansible на установку Ruby через rbenv, а не из apt-get через ruby1.9.1. Теперь я получаю сообщение об ошибке при попытке установить гем через Ansible.
TASK: [nginx | s3cp gem] ******************************************************
failed: [staging.myapp.com] => {"cmd": ["/usr/local/bin", "query", "-n", "^s3cp$"], "failed": true, "item": "", "rc": 13}
msg: [Errno 13] Permission denied
FATAL: all hosts have already failed -- aborting
Запись Ansible playbook для этой команды:
- name: s3cp gem
gem: name=s3cp state=present executable=/usr/local/bin
У меня sudo
установлено на "yes"
в вызове более высокого уровня для этой части playbook. Так что я не уверен, почему он спотыкается. Я также могу войти в систему с тем же пользователем, который используется для Ansible, и перейти в этот каталог, а также установить этот гем.
Он работал нормально, когда я использовал apt-get для установки ruby1.9.1. Любые идеи?
Кстати, это развернуто на сервере Ubuntu 13.04
.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Видимо дело не только в s3cp. Я пропустил это и перешел к другой команде для установки бандлера. Эта команда также не сработает (сбой точно так же). Мне интересно, существует ли рубин по умолчанию, конфликтующий с рубином rbenv (хотя which ruby
при входе по ssh дает ожидаемый каталог rbenv).
БОЛЬШЕ-БОЛЬШЕ ИНФОРМАЦИИ:
Вместо этого я попытался установить ruby через rvm. У меня была такая же ошибка. :(