回答:
これを行うには多くの方法がありますが、私が考えることができる最も簡単な方法は、Jenkins Homeフォルダーのバックアップを行うことです。
あなたはあなたのジェンキンスの家がどこにあるかを見ることができます:
echo $JENKINS_HOME
また、たとえば、ジョブのみをバックアップする場合は、次の場所に移動できます。
cd $JENKINS_HOME/jobs
そのフォルダのバックアップを作成します。
その構成はすべて、XMLファイルの束になります。
公式のJenkinsドッカーイメージを使用している場合、ホームは次のようになります。
/var/jenkins_home
$JENKINS_HOME
:環境変数をsudo su -s /bin/bash jenkins
、その後、そしてecho $JENKINS_HOME
私のためだった、/var/lib/jenkins
すべてのジョブ(jobs/
)およびマスター構成ファイル(config.xml
)は、Jenkinsホームフォルダー(JENKINS_HOME
)の次の構造にあります。
JENKINS_HOME
+- config.xml (jenkins root configuration)
+- *.xml (other site-wide configuration files)
+- userContent (files in this directory will be served under your http://server/userContent/)
+- fingerprints (stores fingerprint records)
+- plugins (stores plugins)
+- workspace (working directory for the version control system)
+- [JOBNAME] (sub directory for each job)
+- jobs
+- [JOBNAME] (sub directory for each job)
+- config.xml (job configuration file)
+- latest (symbolic link to the last successful build)
+- builds
+- [BUILD_ID] (for each build)
+- build.xml (build result summary)
+- log (log file)
+- changelog.xml (change log)
ほとんどの設定はXML形式であるため、すべての.xml
ファイルをバックアップするだけで十分です。
すべての設定、ビルドログ、アーティファクトアーカイブは、JENKINS_HOMEディレクトリの下に保存されます。このディレクトリをアーカイブして、バックアップを作成します。同様に、データの復元は、バックアップからJENKINS_HOMEディレクトリの内容を置き換えるだけです。
サーバーを停止せずにバックアップを取得できますが、復元する場合はサーバーを停止してください。
一貫したバックアップのためにJENKINS_HOME
、Gitリポジトリの下にディレクトリを保持することをお勧めします。
例えば:
cd $JENKINS_HOME
git init
shopt -s globstar
git add **/config.xml
git commit -m'Added job config files' -a
ファイルを外部リポジトリにプッシュします。次の.gitignore
ファイルを追加して、一部のファイルを無視することもできます。
SCM同期設定用プラグインは、あなたが望むものを正確に行います。svnまたはgitのいずれかと連携してjenkinsのコアとジョブの構成をバックアップするため、変更だけでなくバックアップも簡単に追跡できます。
jenkinsデータとマスター構成をバックアップする方法はほとんどありません。バックアップの最良の方法は、Thinbackupプラグインを使用することです。cron式を使用して、タイムリーなバックアップをスケジュールできます。完全バックアップと増分バックアップも構成できます。
データと設定をバックアップする別の方法は、jenkinsマスターサーバーのディスクスナップショットを取得することです。これを行う理想的な方法は、ディスクをマウントし、jenkins configディレクトリをディスクマウントポイントにリンクすることです。
両方のシナリオは、このブログ投稿で詳しく説明されています。構成のより良いアイデアと手順が得られます。
のスクリプトを使用していsue445/jenkins-backup-script
ます。
次のようなJenkinsの設定とプラグインをアーカイブします。
$JENKINS_HOME/*.xml
$JENKINS_HOME/jobs/*/*.xml
$JENKINS_HOME/nodes/*
$JENKINS_HOME/plugins/*.jpi
$JENKINS_HOME/secrets/*
$JENKINS_HOME/users/*
./jenkins-backup.sh /path/to/jenkins_home archive.tar.gz
# add timestamp suffix
./jenkins-backup.sh /path/to/jenkins_home backup_`date +"%Y%m%d%H%M%S"`.tar.gz
thinBackupプラグインを試してみることができます(アクティブに維持されていなくても)[ 論理的なバックアップを取るだけで十分な場合](つまり、構成xmlファイル、ジョブ、ノードなどのほとんど)。バックアップサイズはそれほど大きくありません。
Jenkinsを1つのWindows Serverインスタンスから別のインスタンスに移行する必要がありました。最後に、私はそのようにそれをすることができました:
C:\Program Files x86\Jenkins
)jenkins.exe install
これにより、貼り付けたばかりのJenkinsが新しいマシンのサービスとして登録され、100%同じように機能します。
これが機能する場合、将来の安全のためにバックアップが必要な場合は、Jenkinsフォルダーをどこかにコピーします。スナップショットのように機能します。