【发布时间】:2014-03-30 00:43:15
【问题描述】:
我尝试使用不同的 ssh_options 在同一阶段运行 capistrano v.3 任务。
我的 production.rb 说:
set :stage, :production
set :user, 'deploy'
set :ssh_options, { user: 'deploy' }
使用此配置 capistrano 与用户 deploy 连接,这对于其余任务是正确的。但是我需要使用 an_other_user 将它连接到服务器中配置良好的特定任务。 然后我的食谱说:
...
tasks with original user
...
task :my_task_with_an_other_user do
set :user, 'an_other_user'
set :ssh_options, { user: 'an_other_user' }
on roles(:all) do |host|
execute :mkdir, '-p', 'mydir'
end
end
...
other tasks with original user
...
执行时:
上限生产命名空间:my_task_with_an_other_user
capistrano 使用原始 :user "deploy"(在 production.rb 中声明的用户)进行 ssh conexion。
如何在任务中更改用户和/或 ssh_options?
【问题讨论】:
-
嗨。我早些时候发表了评论,但这会引起一些新问题。我终于修复了它并找到了一个优雅的解决方案,刚刚更新了答案。
标签: ruby deployment capistrano capistrano3