繁体   English   中英

Jenkins master上的Git克隆,复制到slave

[英]Git clone on jenkins master, copy to slave

我已经建立了一个运行jenkins的CI服务器和一个带有我们生产环境副本的slave。 我遇到了一个讨厌的小问题:Jenkins显然在奴隶上运行git clone ,这意味着每个奴隶都应该将它的publickey添加到GitHub。

对我来说,这听起来像一个非常奇怪的架构设计。 我希望主服务器(具有我的所有凭据) clone / checkout并将工作区复制到从属服务器。 但经过一些谷歌搜索,我还没有找到办法做到这一点。 我找到了Copy to slave插件,但这并没有阻止slave在git clone上失败。

我希望有人知道实现这一目标的方法,因为为每个奴隶设置GitHub公钥都听起来很荒谬。

Jenkins显然在slave上运行git clone,这意味着每个slave都应该将它的publickey添加到GitHub中。

为什么不使用一个 部署密钥 (供所有Jenkins代理使用)来访问您的仓库?

部署密钥是存储在服务器上的SSH密钥,用于授予对GitHub上的单个存储库的访问权限。
此密钥直接附加到存储库而不是用户帐户。

优点

  • 有权访问服务器的任何人都有权部署存储库
  • 用户无需更改其本地SSH设置

缺点

  • 部署密钥仅授予对单个存储库的访问权限,更复杂的项目可能有许多存储库可以提取到同一服务器
  • 密钥具有对存储库的完全读/写访问权限
  • 部署密钥通常不受密码保护,如果服务器受到危害,则可以轻松访问密钥

另一种方法是使用Credentials Jenkins插件20122月初始化),该插件允许在Jenkins master中存储凭据

管理每个凭证的单点。 在一个地方改变它,你就完成了。

从版本1.5开始,该插件现在支持将凭证分类到不同的“域”,以允许插件将凭证的选择限制为仅适用于那些凭据。

当插件要求提供凭证列表时,它可以添加关于凭据的使用位置和方式的一些规范。

凭据域配置示例:

https://wiki.jenkins-ci.org/download/attachments/59511751/Screen+Shot+2013-08-07+at+13.50.42.png?version=1&modificationDate=1375880556000

通过在master上集中凭据,可以在最近的Jenkins版本中修复此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM