我有什麼:廚師;死簡單廚師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