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