0

我正在使用 Capistrano 将我们的代码部署到许多机器(几台到数百台)。

我将使用 Capistrano 来执行此操作。据我所知,我需要为 Capistrano 使用的 SSH 登录生成一对公私钥;我想我可能需要将我的公钥安装到我所有的目标机器上。我对吗?

有一个更好的方法吗?这很乏味。

4

4 回答 4

4

是的,这是与远程服务器进行身份验证的唯一方法,否则您必须使用用户名和密码。

我们实际上是使用 Puppet 来安装基础系统和公钥。然后您可以使用 capistrano 进行部署。

于 2012-09-20T13:46:43.167 回答
1

我也没有安慰。

但试着这样看:如果你有x机器要部署,没有公钥加密,你将不得不使用密码x * #deployments时间登录。现在你只需要登录x时间。您部署的越多,优势就越大。

当然,如果您只计划部署一次或两次,那么可能只有很小的优势。

于 2012-09-20T13:58:10.960 回答
1

是的,您的 Capistrano 脚本将通过 ssh 进入机器以启动部署。您应该注意,很可能会有一个 ssh 从目标机器返回到保存要部署的文件的机器。因此,您还需要将目标机器的公钥放在处理版本控制的机器上)。

于 2012-09-20T14:00:46.303 回答
0

要回答您的问题,是的,要获得 SSH 密钥身份验证登录,您需要将您的公钥放在每台机器上。如果部署涉及登录大量单独的服务器,那么我建议您做错了什么。想到的第一个解决方案是让每个框在某种触发器(例如成功的 CI 构建)之后从中央存储库中检查最新的工作副本,但是如果不了解您的项目的更多信息,很难说出什么最有效.

于 2012-09-20T13:45:19.820 回答