当前位置:  开发笔记 > 前端 > 正文

有没有办法将Hudson/Jenkins配置文件保存在源代码管理中?

如何解决《有没有办法将Hudson/Jenkins配置文件保存在源代码管理中?》经验,为你挑选了6个好方法。

我是Hudson/Jenkins的新手,想知道是否有办法检查Hudson的配置文件来源控件.

理想情况下,我希望能够在UI中单击"保存配置"中的某个按钮,并将Hudson配置文件签入到源代码管理中.



1> Peter Schuet..:
最有帮助的答案

有一个名为SCM Sync配置插件的插件.


原始答案

看看我对类似问题的回答.基本思想是使用filesystem-scm-plugin来检测xml文件的更改.您的第二部分是将更改提交给SVN.

编辑:如果您找到了确定更改用户的方法,请告诉我们.

编辑2011-01-10同时有一个新的插件:SCM Sync配置插件.目前它只适用于subversion和git,但计划支持更多的存储库.我从0.0.3版本开始使用它,到目前为止它运行良好.


我不同意:如果你使用git并在复杂的环境中运行,插件有一些主要的缺点:'如果你使用Git,那么你应该使用默认名称的SSH密钥.这是"id_rsa".SCM Sync没有指定ssh密钥路径的选项.SCM Sync使用jenkins进程所有者主目录中的.ssh/id_rsa.来自[https://wiki.jenkins-ci.org/display/JENKINS/ScmSyncConfig+Troubleshootings]
SCM Sync Configuration插件与Subversion插件> = 2.0(根据https://issues.jenkins-ci.org/browse/JENKINS-21640)不兼容.

2> VonC..:

请注意,Vogella最近(2014年1月,与2010年1月的OP问题相比)有不同的看法.
考虑到SCM Sync配置插件可以生成大量提交.
因此,他不是依赖插件和自动化流程,而是手动管理相同的功能:

在Git中存储Jenkins的工作信息

我发现提交量有点压倒性,所以我决定手动控制提交并仅保存Job信息而不是Jenkins配置.
为此切换到Jenkins作业目录(Ubuntu:)/var/lib/jenkins/jobs并执行" git init"命令.

我创建了以下.gitignore文件来仅存储Git作业信息:

builds/
workspace/
lastStable
lastSuccessful
nextBuildNumber
modules/
*.log

现在,您可以根据自己的意愿添加和提交更改.
如果您将另一个遥控器添加到您的Git存储库,您可以将配置推送到另一台服务器.

Alberto实际上也建议添加(in $JENKINS_HOME):

jenkins拥有config(config.xml),

jenkins插件配置(hudson*.xml)和

用户配置(users/*/config.xml)


经过一些研究,结果证明API令牌是在XML中加密的,因此这不会带来安全风险.

3> Emil Sit..:

要使用Git手动管理配置,以下.gitignore文件可能会有所帮助.

# Miscellaneous Hudson litter
*.log
*.tmp
*.old
*.bak
*.jar
*.json

# Generated Hudson state
/.owner
/secret.key
/queue.xml
/fingerprints/
/shelvedProjects/
/updates/

# Tools that Hudson manages
/tools/

# Extracted plugins
/plugins/*/

# Job state
builds/
workspace/
lastStable
lastSuccessful
nextBuildNumber

有关详细信息,请参阅https://gist.github.com/780105和http://bit.ly/i58rg2.



4> Matt Solnit..:

有一个新的SCM Sync Configuration插件可以完全满足您的需求.

SCM同步配置Hudson插件主要针对两个主要功能:

使用SCM存储库保持config.xml(和其他ressources)hudson文件的同步

使用提交消息跟踪对每个文件所做的更改(和作者)

我还没有尝试过这个,但看起来很有希望.


我对使用Git的SCM Sync Configuration插件的工作配置感兴趣,我尝试了几种配置,但我根本无法使其工作(并且日志中的错误消息充其量只是无用的).

5> kenorb..:

您可以在Jenkins主文件夹中找到配置文件(例如/var/lib/jenkins)。

要将它们保留在VCS中,请首先以Jenkins(sudo su - jenkins)登录并创建其git凭据:

git config --global user.name "Jenkins"
git config --global user.email "jenkins@example.com"

然后初始化,添加并提交基本文件,例如:

git init
git add config.xml jobs/ .gitconfig
git commit -m'Adds Jenkins config files' -a

还可以考虑.gitignore使用以下文件创建文件以忽略(根据需要进行定制):

# Git untracked files to ignore.

# Cache.
.cache/

# Fingerprint records.
fingerprints/

# Working directories.
workspace/

# Secret files.
secrets/
secret.*
*.enc
*.key
users/
id_rsa

# Plugins.
plugins/

# State files.
*.state

# Job state files.
builds/
lastStable
lastSuccessful
nextBuildNumber

# Updates.
updates/

# Hidden files.
.*
# Except git config files.
!.git*
!.ssh/

# User content.
userContent/

# Log files.
logs/
*.log

# Miscellaneous litter
*.tmp
*.old
*.bak
*.jar
*.json
*.lastExecVersion

然后添加:git add .gitignore

完成后,您可以添加作业配置文件,例如

shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a

最后,根据需要添加并提交任何其他文件,然后将其推送到要保留配置文件的远程存储库。


更新Jenkins文件后,您需要重新加载它们(从磁盘重新加载配置)或reload-configuration从Jenkins CLI 运行。



6> nepa..:

我更喜欢的方法是排除Jenkins主文件夹中的所有内容,除了您真正希望包含在VCS中的配置文件。这是.gitignore我使用的文件:

*
!.gitignore
!/jobs/*/*.xml
!/*.xml
!/users/*/config.xml
!*/

这会忽略*!.gitignore本身,作业/项目,插件以及其他重要和用户配置文件之外的所有内容()。

还值得考虑包括该plugins文件夹。应当包括烦人的更新插件...

基本上,此解决方案使将来的Jenkins / Hudson更新变得更容易,因为新文件不会自动包含在范围内。您只需要真正想要的就可以了。

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有