2012-01-11 95 views
5

我对Jenkins和私人Github回购有一个小问题。 签出私人回购,一个通常需要一两件事情:如何使用Jenkins结帐几个私人Github回购

  • 对回购
  • 用户的SSH私钥注册“部署的关键”为回购
  • 的SSH私钥

部署密钥用于这种交互。问题是部署密钥必须在整个项目中是唯一的,所以每次都必须使用不同的密钥。 这意味着我必须为每个额外的回购为Jenkins用户添加另一个密钥到ssh-agent。
这也意味着,默认情况下,代理将尝试所有可用的密钥,并且可能会在用错误的密钥尝试几次错误尝试后断开连接。

Jenkins git插件似乎不允许将它指向SSH密钥。 Jenkins在结帐前不允许任何命令行交互,所以我不能使用任何bash技巧来设置正确的密钥。

到目前为止,唯一的解决办法似乎是:

  1. 创建github上
  2. 的“my_jenkins_account”用户的公钥添加到用户
  3. 的帐户添加到我愿意回购检查出使用詹金斯
  4. 添加用户的私钥对詹金斯用户

任何其他建议?

回答

13

这不完全是一个答案,只是在黑暗中的回声,让你知道我做了几乎相同的事情。

  1. 运行詹金斯作为一个用户名为jenkins
  2. sudo为这个用户和建立一个公共SSH密钥
  3. 创建一个免费的GitHub的账户叫myorg-machines
  4. 添加此jenkins用户的公共SSH密钥的myorg-machines帐户GitHub上的按键。我将这个关键字命名为jenkins on server.name.com以保持组织性。
  5. 创建一个名为Machines - Pull only的GitHub团队。添加myorg-machines GitHub用户到该团队,并让该团队访问我的适当私人回购站。

我同意它似乎klunky,但它现在很容易管理一年左右。

+1

谢谢,我们现在也在运行此设置。它的工作原理,但它仍然是错误的:( – 2012-02-01 22:08:00

+0

好吧在某种程度上,jenking服务器_acts_作为您的存储库的额外用户。从某种意义上讲,它是一个独立的实体,作用于存储库。并非完全不合理将这个实体映射到一个github用户(说了这么多,就像已经说过的那样,它仍然有点klinky,但是我们要做的,我们要去......) – Cornelius 2013-06-12 14:54:16