As part of the Juju 2.8 release,
juju-restore is now available as a Developer Preview.
juju-restore is a tool to restore a Juju backup file into a Juju controller. This may be required if a
juju upgrade-model failed for some reason. In a sense, it provides rollback functionality.
A restore can work backup that was taken from an earlier Juju version when the
--allow-downgrade option is passed. This means that if you take a backup before upgrading the controller, and then hit a bug in the new Juju version, you can restore the backup to get back to the original version.
This works on high-availability (HA) controllers, as long as there’s SSH connectivity from the primary controller (where you run
juju-restore) to the secondary controller machines. We check for connectivity before beginning the restore, just in case.
juju-restore is written in Go and downloadable from the Releases tab of the GitHub project. To “install”
juju-restore, copy the executable onto the controller machine.
# Download the latest release wget https://github.com/juju/juju-restore/releases/download/v0.9/juju-restore # Switch to the controller model juju switch -m controller # Copy juju-restore to the machine hosting the MongoDB primary juju scp juju-restore 0:/home/ubuntu
juju-restore should be run on the primary controller machine in the MongoDB replica set. This is typically machine 0 in the controller model. All replica set nodes need to be healthy, in PRIMARY or SECONDARY state.
juju-restore requires a backup file to be in place. If you have saved a local copy, use
juju scp to copy this to the controller machine.
juju-restore [--allow-downgrade] <path-to-backup>