2012-11-13 41 views
0

我有一個上限腳本,在運行任何遠程代碼之前執行一些冗長的編譯步驟。我希望能夠在所有這些情況都能夠走開,但只要編譯完成,它就會向我詢問遠程服務器密碼。有沒有辦法我可以強制腳本立即要求輸入密碼,這樣我就可以讓其他人無人看管?強制capistrano立即要求密碼

我知道我可以設置無密碼的ssh來完全避免密碼提示,但是我正在尋找一種方法,允許無密碼ssh設置的用戶進行無人看管的部署。

我覺得我已經在某處看到了一個簡單的解決方案,但我無法找到正確的搜索條件。

回答

1

如果您是通過sudo運行大多數命令(也就是,你有set :use_sudo, true)你也許可以通過掛鉤before "deploy", "ask_for_password"做到這一點,並創建一個任務「ask_for_password」,並立即用它來與sudo執行任何命令,如sudo date。 Sudo只會第一次提示,那麼推測會有足夠長的超時時間來完成部署。

如果還是不行...

...我們談論Capistrano的 - 是沒什麼用Capistrano的簡單。這是一個非常強大的工具,我不認識任何人發現它「簡單」。

不是設置每個人都可以部署,也許設置一個主機,你可以讓用戶像「部署者」那樣ssh進入,然後執行部署。

但是部署是一項相當重要的任務 - 並不是每個人都應該能夠做到,尤其是對於生產。我認爲你最好安裝無權密碼的公用密鑰,這些用戶有權部署在允許部署的服務器上(例如,測試而不是分段或生產)。

+0

這是一段時間以前,但我終於回到這個項目,你的解決方案工作。 –