您在哪里设置服务器的IP地址以将代码推送到?

时间:2011-07-14 01:39:21

标签: capistrano

我正在阅读capistrano教程:https://github.com/capistrano/capistrano/wiki/2.x-From-The-Beginning

您在哪里设置服务器的i.p地址以将代码推送到?

是否假设您设置了SSH密钥?

如果您有10台服务器,最好使用不同的工具来镜像事物吗?

3 个答案:

答案 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.rbCapfile中,只需将“网络”角色设置为您需要的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。适用于多台服务器。然后,您可以在单独的文件中定义不同的阶段(或服务器),然后通过指定阶段部署到每个阶段(并且您可能有一个默认阶段要部署到)。