Skip to content

Instantly share code, notes, and snippets.

@mriddle
Created November 9, 2012 03:13
Show Gist options
  • Star 25 You must be signed in to star a gist
  • Fork 13 You must be signed in to fork a gist
  • Save mriddle/4043487 to your computer and use it in GitHub Desktop.
Save mriddle/4043487 to your computer and use it in GitHub Desktop.
Moving Jenkins server configuration from one server to another
ORIGINAL_JENKINS_SERVER=
ORIGINAL_SERVER_USER=
NEW_JENKINS_SERVER=
NEW_SERVER_USER=
# ON THE ORIGINAL JENKINS SERVER
ssh $ORIGINAL_SERVER_USER@$ORIGINAL_JENKINS_SERVER
cd /var/lib/jenkins/
for i in `ls jobs`; do echo "jobs/$i/config.xml";done > config.totar
tar zcf /tmp/jenkins_config.tar.gz *.xml userContent/ plugins/ -T config.totar
exit
# ON YOUR WORKSTATION
scp $ORIGINAL_SERVER_USER@$ORIGINAL_JENKINS_SERVER:/tmp/jenkins_config.tar.gz .
scp jenkins_config.tar.gz $NEW_SERVER_USER@$NEW_JENKINS_SERVER:/tmp/
# ON THE NEW JENKINS SERVER
ssh $NEW_SERVER_USER@$NEW_JENKINS_SERVER
cd /var/lib/jenkins
sudo tar xvzf /tmp/jenkins_config.tar.gz
sudo chown -R jenkins:jenkins .
sudo vi config.xml
# Remove all the slaves
sudo service jenkins restart
exit
@tkleiber
Copy link

Line 10 does not work for directories containing changes, better will be:
find jobs -name config.xml > config.totar

@SteveDonie
Copy link

the previous comment should be 'directories containing spaces'

@bakharzy
Copy link

bakharzy commented Apr 8, 2015

This script does not copy hidden folders.

@ilyaevseev
Copy link

Try to replace..

for i in `ls jobs`; do echo "jobs/$i/config.xml";done > config.totar
tar zcf /tmp/jenkins_config.tar.gz *.xml userContent/ plugins/ -T config.totar

by...

tar zcf /tmp/jenkins_config.tar.gz *.xml userContent/ plugins/ jobs/*/config.xml

@jonathrodriguez
Copy link

Is it not necessary to copy the users/ directory?

@gusdevops
Copy link

You're missing some files

$JENKINS_HOME/*.xml
$JENKINS_HOME/jobs/*/*.xml
$JENKINS_HOME/nodes/*
$JENKINS_HOME/plugins/*.jpi
$JENKINS_HOME/secrets/*
$JENKINS_HOME/users/*

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment