【问题标题】:How to save Jenkins configuration?如何保存 Jenkins 配置?
【发布时间】:2019-06-09 02:43:43
【问题描述】:

有什么方法可以在 Git 或其他任何地方保存管道配置或项目配置,以便当我的 Jenkins 机器崩溃时,我可以将保存的配置迁移到新的 Jenkins 实例中?

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    您好,您可以在文件中编写管道脚本并将该文件发布到 git 中。

    之后只需在 jenkins 中创建管道作业并使用 Pipeline script from SCM 选项作为管道脚本。

    另一个选项是将 Jenkins 主目录备份到外部硬盘(将项目工作区保留在 jenkins 主目录之外以减少备份大小)。

    【讨论】:

    • 感谢您的回复,“来自 SCM 的管道脚本”是正确的脚本部分,我正在询问管道的配置部分,假设我有一个管道,管道 x 并且在我的配置中将其添加为参数化管道,并且在配置中我还提到了它作为“来自 SCM 的管道脚本”,我还安排了这个管道,管道 x 的整个配置设置,我可以将它保存在任何地方吗?
    • 是的,您也可以在管道脚本中提及这一点。转到任何工作并单击左侧的Pipeline Syntax 选择Declarative Directive Generator,然后从下拉列表中选择您想要的选项并单击生成,您将获得语法。将其添加到您的管道脚本中并完成
    【解决方案2】:

    您的所有作业都存储在$JENKINS_HOME/jobs/<path_to_your_job> 文件夹内的config.xml 文件中。因此,您可以只备份这些 config.xml 文件(或者您可以通过保存完整的 $JENKINS_HOME 文件夹来备份所有 Jenkins 配置)。

    【讨论】:

    • 我不得不手动将$JENKINS_HOME 设置为/var/lib/jenkins,希望这对某人有所帮助!
    【解决方案3】:

    我会(作为开始)让你自己 - https://wiki.jenkins.io/display/JENKINS/JobConfigHistory+Plugin 保存对作业、系统配置等所做的所有更改的历史记录 - 已经多次救了我。

    另外,您可以在 Jenkins 之外设置一个 cron 作业来 git push 您的作业配置。

    我设置推送 Jobs 文件夹内容(包括构建历史 - 但您可以排除它 - Correctly ignore all files recursively under a specific folder except for a specific file type ref)。

    我的脚本(我之前设置了 SSH 东西)

    cd /this/that/other/jenkins_data/jobs/
    NOW=$(date +"%m-%d-%Y-%r")
    git add .
    git commit -m "Jenkins Backup $NOW"
    git push -u origin jenkins-backup
    

    这种方式让我放心,我有一个 RSYNC 到另一个盒子,我也有一个备份插件也在运行......(我被刺过一次 - 不再!)

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-01
      • 2012-09-16
      • 2016-12-31
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      相关资源
      最近更新 更多