我正在使用 Capistrano 将我们的代码部署到许多机器(几台到数百台)。
我将使用 Capistrano 来执行此操作。据我所知,我需要为 Capistrano 使用的 SSH 登录生成一对公私钥;我想我可能需要将我的公钥安装到我所有的目标机器上。我对吗?
有一个更好的方法吗?这很乏味。
我正在使用 Capistrano 将我们的代码部署到许多机器(几台到数百台)。
我将使用 Capistrano 来执行此操作。据我所知,我需要为 Capistrano 使用的 SSH 登录生成一对公私钥;我想我可能需要将我的公钥安装到我所有的目标机器上。我对吗?
有一个更好的方法吗?这很乏味。
是的,这是与远程服务器进行身份验证的唯一方法,否则您必须使用用户名和密码。
我们实际上是使用 Puppet 来安装基础系统和公钥。然后您可以使用 capistrano 进行部署。
我也没有安慰。
但试着这样看:如果你有x
机器要部署,没有公钥加密,你将不得不使用密码x * #deployments
时间登录。现在你只需要登录x
时间。您部署的越多,优势就越大。
当然,如果您只计划部署一次或两次,那么可能只有很小的优势。
是的,您的 Capistrano 脚本将通过 ssh 进入机器以启动部署。您应该注意,很可能会有一个 ssh 从目标机器返回到保存要部署的文件的机器。因此,您还需要将目标机器的公钥放在处理版本控制的机器上)。
要回答您的问题,是的,要获得 SSH 密钥身份验证登录,您需要将您的公钥放在每台机器上。如果部署涉及登录大量单独的服务器,那么我建议您做错了什么。想到的第一个解决方案是让每个框在某种触发器(例如成功的 CI 构建)之后从中央存储库中检查最新的工作副本,但是如果不了解您的项目的更多信息,很难说出什么最有效.