我有什么:厨师;死简单厨师rvm安装脚本失败
我需要的是:RVM安装为node[:deploy][:user][:name]
。我需要用户范围的安装,而不是系统范围的安装。
我试过最新:
script 'install_rvm' do
user = node[:deploy][:user][:name]
interpreter '/bin/bash'
code "su -l #{user} -c '\curl https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable'"
not_if { ::File.exists? "/home/#{user}/.rvm" }
end
当我手动测试服务器上运行su -l <username> -c '\curl <long_url> | bash -s stable'
肯定它完美的作品。 我希望厨师运行相同的代码,并在日志中看起来像它,但下一个execute
资源失败,因为实际上没有/home/<username>/.rvm
目前。 是的,我知道在厨师我可以指定用户为user node[:deploy][:user][:name]
而不是更改用户su
但由于某种原因,如果我这样做rvm
会尝试将自己安装在/root/.rvm
(env未正确重置?)。 嗯,我想问,为什么厨师对于这样的死 - 简单的任务如此极端蹩脚,但它看起来像我选择了错误的地方,所以问题是我做错了什么,或者我错过了什么明显的?
也许问题出在''su - ''命令。当我尝试在''passenger-install-nginx-module''命令之前使用此命令时,我发现厨师bash脚本使用(不工作)和手动使用(正常工作)之间的差异相同。 – s2t2
如果你用''user node [:deploy] [:user] [:name]''切换''user = node [:deploy] [:user] [:name]''会发生什么情况,删除等号? – s2t2