git克隆问题

时间:2010-06-24 21:27:52

标签: ruby-on-rails ruby git github

我已使用

在本地计算机上创建项目的克隆
git clone git@github.com:test/abc.git

现在我想在我的ubuntu服务器上部署我的项目。

所以我创建了一个在我的ubuntu服务器上安装git的脚本。 现在我想在服务器上部署我的rails项目。 比如git clone git@github.com:test / abc.git但是我没有在我的服务器上设置ssh密钥。 有没有办法在我的服务器上没有设置ssh密钥的情况下创建克隆。

我们必须在每台服务器上创建ssh的强制措施吗?

如果我有20台服务器怎么办?我需要为每个要克隆的服务器设置ssh密钥吗?

有没有办法只问密码而不是创建克隆?

还是其他任何方式?

4 个答案:

答案 0 :(得分:2)

您可以使用只读版本。在存储库名称旁边,您可以选择http协议。这个网址可以在没有ssh密钥的情况下使用。如果是私人存储库,则需要将用户名添加到网址。

$ git clone http://myname@github.com:test/abc.git
Initialized empty Git repository in /Users/myname/Projects/abc/.git/
password: 

然后键入密码,稍后您就可以克隆了。缺点是如果您使用私人仓库,则需要输入密码。

虽然我没有看到添加一些ssh-key的问题。如果您确实需要部署到20台服务器,您可能会考虑使用具有良好操作系统支持的打包方法来自动更新。

答案 1 :(得分:1)

尝试使用配置管理工具来部署安装是错误的。您真的打算更新这20个系统中的每个系统的代码吗?那你为什么要授予他们对代码的写访问权?

创建一个tarball或使用您正在开发的语言中提供的任何包管理系统(例如,在Perl中,您可以使用Dist::ZillaModule::InstallExtUtils::MakeMake r。< / p>

答案 2 :(得分:0)

我们创建了一个php脚本,它构建了RPM(以及使用Alien也构建了DEB)来更新我们的200多台机器。当一个像“http://repo/fetch/rpm/”这样的网址被调用时,如果在package_name存储库中插入了新的git标签,则检查脚本,如果是,则使用我们在每个repo基础上创建的RPM模板(通常放在.build / rpm中) .spec)构建RPM,将其保存到本地缓存目录,并将内容作为文件头读出。

我知道你的应用程序因为你使用的是GitHub而无法工作 - 但对于拥有自己的远程存储库的人来说,这只是一个想法。盒子上的一个cron每天会查询一次这些URL并在输出上运行rpm -Uvh。

对于您的实例,tarball每个版本可能是明智的,并将其放在公共可访问的URL中或创建脚本以将其同步到每个服务器+ exec

答案 3 :(得分:0)

如果您正在部署rails项目,则应该查看Capistrano - http://www.capify.org/index.php/Getting_Started