用rbenv ansible安装ruby

时间:2015-04-21 14:42:12

标签: ruby ansible rbenv ansible-playbook

我正在尝试在Ubuntu 14.04上使用ansible引导rails dev环境,使用rbenv来处理ruby版本。我有一本可以成功运作的各种内容的剧本,但我已经在this gist

中删除了相关部分

运行此任务时:

- name: Install ruby with rbenv
  sudo_user: "{{ username }}"
  #command: rbenv install {{ ruby_version }}
  command: zsh -lc "rbenv install {{ ruby_version }}"

我收到以下错误

failed: [localhost] => {"changed": true, "cmd": ["zsh", "-lc", "rbenv install 2.1.2"], "delta": "0:00:00.005791", "end": "2015-04-21 09:31:19.184810", "rc": 127, "start": "2015-04-21 09:31:19.179019"}
stderr: zsh:1: command not found: rbenv

之前的所有任务都是成功的,包括获取 出于某种原因,在运行此操作时,我收到一条未安装rbenv的错误。

你可以看到我只是使用“rbenv install”注释掉了,因为有人建议,因为rbenv会依赖你的.bashrc(或者我的.zshrc中的某些内容),你需要运行它与壳。但这也不起作用。

我还尝试使用raw模块添加任务来重启shell。我尝试使用shell代替command

Here's my zshrc如果相关的话。

我检查了this answer,但他们刚刚提到使用较新版本的“when”时遇到问题。也没有人回答this question,这是类似的。

1 个答案:

答案 0 :(得分:1)

由于某种原因,命令zsh -lc未正确加载PATH的值以包含rbenv命令,即使您已在.zshrc中设置它}。

这有点像黑客攻击,但我可以通过替换

来运行rbenv

command: zsh -lc "rbenv install {{ ruby_version }}"

command: zsh -lc "{{home_dir}}.rbenv/bin/rbenv install {{ ruby_version }}"