我有一个由几个团队共享的Jenkins集群,我可以配置构建作业,但是我不能轻易地对Jenkins配置本身进行更改 .
有一个中央“nexus pro”maven存储库管理器,但是这个非常大的跨国公司中的每个团队/团队都有自己的repo,发布到repos需要用户名/密码组合 .
这意味着我必须使用maven settings.xml配置Jenkins服务器,这对我正在使用的团队来说是唯一的,而不会弄乱Jenkins集群的其他用户的maven配置 .
Git是源代码控制存储库 .
- 在共享的Jenkins群集上,如何配置对一组构建作业或单个作业唯一的maven settings.xml?处理此类情况的最佳做法是什么?
5 回答
我建议使用configuration file plugin,提供一个用户界面来编辑一个或多个Maven设置文件 .
可以使用“-s”选项将这些设置文件传递到Maven构建中 .
您可以在Maven Advanced Options部分中为每个作业指定一个特定的seetings.xml路径
我们使用Puppet管理所有构建节点 . 它提供了比settings.xml更强大的控制能力 . 强烈推荐
Puppet是IT自动化软件,可帮助系统管理员在整个生命周期内管理基础架构,从配置和配置到补丁管理和合规性 . 使用Puppet,您可以轻松实现重复性任务的自动化,快速部署关键应用程序,并主动管理变更,从10个服务器扩展到1000个,内部部署或 Cloud 端 .
如果您的公司正在使用Nexus Pro(正如您已经提到的那样),那么您可以在那里存储您独特的Maven settings.xml,并在构建时使用nexus-maven-plugin检索,如下所述:http://books.sonatype.com/nexus-book/reference/maven-settings.html
结合基于令牌的访问(同样,Nexus Pro执行此操作),您不需要在settings.xml中不安全地存储密码(请参阅https://books.sonatype.com/nexus-book/reference/usertoken.html)
使用ElasticBox Jenkins plugin自动配置具有特定配置的maven执行程序的好方法 .
您只需要为Maven slave创建一个框,它定义了它要使用的所有自定义变量和文件,并选择首选的 Cloud 提供程序来部署它 .
ElasticBox还为您提供了仅在需要时创建新从站的灵活性,并在指定的保留时间后自动销毁它们 .
以下是如何将Jenkins与ElasticBox连接:
https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-setup/#jenkins-configure-plugin
以下是如何使用ElasticBox自动创建Jenkins从属:
https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-slaves/
有一篇关于如何使用ElasticBox Jenkins插件从GitHub拉取请求轻松构建和部署的博客文章:
https://elasticbox.com/blog/github-pull-requests-jenkinsplugin/