使用Jenkins作业备份Jenkins主目录

时间:2017-06-26 18:47:38

标签: git jenkins backup bitbucket jobs

我已经看了几种备份Jenkins主目录的方法。这样做的一个更有趣(并且看似完整)的方法是配置Jenkins作业,该作业将Jenkins主目录备份到源代码控制。

我试图在备份过程中清楚地了解需要执行的操作(通过'执行shell'构建步骤)。我们目前使用BitBucket进行源代码控制(GIT),并有一个Jenkins Master和四个Jenkins代理/从属构建节点。

先决条件

  • 将Jenkins主目录初始化为git repo。

备份Jenkins的步骤

  1. CD到Jenkins主目录。
  2. 将Jenkins Home本地存储库中的所有已更改文件提交到 存储库的主分支。
  3. 将更改从本地存储库推送到BitBucket 库中。
  4. FIN。如果我们需要备份,Jenkins home的最新副本现在存储在源代码管理中。
  5. 因此,对于那些在Jenkins自动备份之前使用过此方法的人,我有几个问题:

    • 单独备份Jenkins主目录就足以备份Jenkins 当分布式构建(代理/从属),系统到位时?
    • 是否应在Jenkins的备份中排除任何文件/目录 主页目录?
    • 将Jenkins Home目录初始化为GIT存储库会有任何问题 詹金斯的负面影响是什么?
    • 我注意到一些教程提到创建用户凭证 Jenkins将在连接到BitBucket时使用。这是如何工作的?

    欢迎任何其他建议。

1 个答案:

答案 0 :(得分:0)

在您的工作中,您可以添加BitBucket凭据。但我为我做的是将jobs文件夹作为.git repo,我经常手动提交它。

你也可以为你运行我在网上找到的bash脚本做一个工作:Bash Script

#!/bin/bash

# Setup
#
# - Create a new Jenkins Job
# - Mark "None" for Source Control Management
# - Select the "Build Periodically" build trigger
#   - configure to run as frequently as you like
# - Add a new "Execute Shell" build step
#   - Paste the contents of this file as the command
# - Save
#  
# NOTE: before this job will work, you'll need to manually navigate to the $JENKINS_HOME directory 
# and do the initial set up of the git repository.  
# Make sure the appropriate remote is added and the default remote/branch set up.
#  

# Jenkins Configuraitons Directory
cd $JENKINS_HOME

# Add general configurations, job configurations, and user content
git add -- *.xml jobs/*/*.xml userContent/*

# only add user configurations if they exist
if [ -d users ]; then
    user_configs=`ls users/*/config.xml`

    if [ -n "$user_configs" ]; then
        git add $user_configs
    fi
fi

# mark as deleted anything that's been, well, deleted
to_remove=`git status | grep "deleted" | awk '{print $3}'`

if [ -n "$to_remove" ]; then
    git rm --ignore-unmatch $to_remove
fi

git commit -m "Automated Jenkins commit"

git push -q -u origin master