我最近升級到Capistrano 2.x到3.x,過程相當簡單。但是,我所遇到的問題是Capistrano 2.x中曾經存在的命令行功能的丟失。特別是,如果我想通過一個不同的用戶比用戶我的系統的當前登錄到部署到遠程服務器,我可以運行如下命令:如何通過Capistrano 3在服務器上使用不同的用戶名從命令行部署代碼?
cap -s user=remote_user staging deploy
Capistrano的3.X允許一個設置在一個特定的用戶通過像這樣的配置設置來部署腳本本身;注意user:
選項:
server 'example.com', user: 'remote_user', roles: %w{app db web}, my_property: :my_value
這是非常好的!但是我在多個用戶(不僅僅是通用的deploy
用戶)可以部署由服務器上的組權限管理的代碼的設置上進行系統管理。意思是用戶,linus
,snoopy
和lucy
和所有工作在相同的代碼,然後部署在自己的唯一用戶名和一切工作。不,切換此設置以使用通用deploy
現在不是一個簡單的選項,至少可以說。代碼庫是相當直接的PHP代碼 - 從部署的角度來看 - Capistrano有助於簡化部署工作流程。
我不想回滾到Capistrano 2.x.那麼,如何讓這些用戶和Capistrano腳本與Capistrano 3.x設置保持一致,但是仍然允許每個人通過他們自己的個人用戶帳戶獨立部署代碼?
有許多討論和帖子在線解釋Capistrano 3.x如何使用環境變量而不是Capistrano 2.x中使用的'-s'設置,但很少清楚地解釋如何實際執行環境變量設置,如這是爲了處理使用相同Capistrano腳本的多個用戶。因此,這個自我發佈的問題和答案線程。 – JakeGould