How to backup my DEV@cloud instance to prepare for the service end-of-life

Issue

On December 15th 2018 12am, all DEV@cloud services will be terminated.
In order to continue to build my projects, I will migrate to CloudBees Core or a Jenkins OSS instance.
How can you provide me the configuration of my DEV@cloud instance?

Environment

Resolution

In order to prepare the end-of-service of DEV@cloud, we have created a new plugin to help you backup your Jenkins instance.

In order to use this plugin, in each instance, we create a job, named _automated-backup.
This job is automatically configured, but you need to save the configuration due to security requirement.
Any modification on the job would be overwritten without notice.

The job will create a tarball of the content on your instance.
This tarball will be stored in your forge repository.
There is a link on the job page that will open the backup folder of your private repository.

Please note that the tarball will be accounted in your quota.

For security reasons, we have removed the encryption key which is used for the credentials.
Also, to make sure you can use this backup with a Jenkins OSS instance, we removed all CloudBees proprietary plugins.

But here is what you need to do in order to restore your backup.

1- Extract the backup

Once you have downloaded the tarball from your repository, you can open it with

mkdir jenkins-home
tar xzf TARBALL.tar.gz -C jenkins-home

2- Remove CloudBees proprietary plugins references

As we removed all proprietary CloudBees plugins, there are some elements you need to remove if you want to start a OSS instance:

  • jenkins-home/nodeMonitor.xml file has a reference to com.cloudbees.jenkins.plugins.foldersplus.SecurityTokensNodeProperty_-NodeMonitorImpl. You need to remove it.
  • jenkins-home/config.xml file configure Jenkins to use the CloudBees security realm plugin and to use a CloudBees proprietary plugin to manage the authorization strategy. You need to disable the security, as shown here: Disable security.

3- Install required plugins

Then, you need to add three plugins:

To do so, you can either download them manually from the plugin repository, or run the following command:

curl -LSs \
  https://updates.jenkins.io/latest/token-macro.hpi -o jenkins-home/plugins/token-macro.hpi \
  https://updates.jenkins.io/latest/cloudbees-folder.hpi -o jenkins-home/plugins/cloudbees-folder.hpi \
  https://updates.jenkins.io/latest/async-http-client.hpi -o jenkins-home/plugins/async-http-client.hpi

4- Reset your credentials

Finally, you need to review the credentials and, even if you can see same values in the password fields, those values are incorrect.
They were encrypted with a key you don’t have in your backup, so the decrypted value is incorrect.
So, you need to reset the password value for all the credentials you have.
Be aware that you might have configured some credentials inside a folder.

5- Start your new instance

From this moment, the content of jenkins-home can be used as a JENKINS_HOME to start a new Jenkins or CloudBees Core instance.

You can have elements of your configurations which are still referencing proprietary plugins.
If so, you can simply go to $JENKINS_URL/administrativeMonitor/OldData/manage to remove them.

Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.