2011-11-29 40 views
0

我正在使用在遠程服務器上具有sudo權限的用戶調用「sam」。我如何部署模板來在遠程服務器上說「/ etc/httpd」文件夾?使用Capistrano將文件部署到不屬於用戶的目錄

template = ERB.new(File.read('templates/UI/httpd.conf.erb')) 
result = template.result(binding) 
put(result, "/etc/httpd/httpd.conf") 
+0

您的示例會將該文件上傳到遠程計算機上的/etc/httpd/httpd.conf。/opt在哪裏進入圖片?如果你想把結果文件放到/opt/httpd.conf中,那麼你應該使用put(result,「/opt/httpd.conf」) – favoretti

+0

對不起,我粘貼了我的capfile中的「code」 – luckytaxi

回答

0

put()命令不能與sudo一起使用,因爲它使用SFTP。它必須是一個兩步驟的過程,將文件上傳到您可以以「sam」用戶身份寫入的位置,然後將其sudo mv到/ etc/httpd。

+0

完美,沒想到它!感謝它的工作。 – luckytaxi

+0

不客氣:) – favoretti