我正在阅读capistrano教程:https://github.com/capistrano/capistrano/wiki/2.x-From-The-Beginning
您在哪里设置服务器的i.p地址以将代码推送到?
是否假设您设置了SSH密钥?
如果您有10台服务器,最好使用不同的工具来镜像事物吗?
答案 0 :(得分:1)
Capistrano不负责推送代码(在推动SCM更改的意义上),您仍然可以使用Git或其他选择的SCM来执行此操作。
默认情况下,Capistrano将登录到“角色”中指定的服务器,并将源代码控制中的代码单独下载到每个服务器。
如果您有10台服务器,并且它们都是Web服务器,您可以在Capistrano的web
角色中为它们命名。
有更多信息有优秀Github guides,但简而言之,是的;您可以设置ssh密钥,以便a)以deploy
用户身份登录服务器,b)服务器访问源控件(通常称为部署密钥)。
@Arthur关于capistrano multistage的建议仅在部署到多个环境时才有用,例如“staging”和“production”,其中程序相同,但服务器列表不同。
答案 1 :(得分:1)
在config/deploy.rb
或Capfile
中,只需将“网络”角色设置为您需要的IP地址,如下所示:
role :web, "1.2.3.4", "5.6.7.8"
正如其他人所说,你需要设置SSH密钥(除非你真的喜欢输入密码!)然后当你输入cap deploy
时它会(根据你的设置)检查git repo,tarball它并将tarball scp到服务器(:deploy_via :copy
或:deploy_via :export
)或ssh到服务器并直接检查git repo(默认行为)。
答案 2 :(得分:-2)
看看capistrano multistage extension。适用于多台服务器。然后,您可以在单独的文件中定义不同的阶段(或服务器),然后通过指定阶段部署到每个阶段(并且您可能有一个默认阶段要部署到)。