# Backup and Recovery
While running, export the Job definitions if you do not have these in source control:
You can use the rd tool.
(1) Export the jobs. You will have to do this for each project
```bash rd jobs list -f /path/to/backup/dir/project1/jobs.xml -p project1 rd jobs list -f /path/to/backup/dir/project2/jobs.xml -p project2 ... ```
(2) Stop the server. See: startup and shutdown. (Rundeck data file backup should only be done with the server down.)
```bash rundeckd stop ```
(3) Copy the data files. (Assumes file datastore configuration). The location of the data directory depends on the installation method:
cp -r data /path/to/backup/dir
(4) Copy the log (execution output) files.
cp -r logs /path/to/backup/dir
(5) Start the server
```bash rundeckd start ```
Other files you might want to backup and their locations:
- ACL Policies -
- Server Config -
- Key Storage -
(1) Stop the server. See: startup and shutdown. (Rundeck recovery should only be done with the server down.)
``` bash rundeckd stop ```
(2) Restore data/logs dir from backup (Refer to above for appropriate log/data path):
``` bash cp -r /path/to/backup/logs logspath cp -r /path/to/backup/data datapath ```
(3) Start the server:
``` bash rundeckd start ```
(4) Reload the Job definitions. You will have to do this for each project:
``` bash rd jobs load -f /path/to/backup/dir/project1/jobs.xml -p project1 rd jobs load -f /path/to/backup/dir/project2/jobs.xml -p project2 ```
# Project Import and Export
As of Rundeck 1.4.4, you can export a Project's database contents into an archive file, and later import it into another project.
You can use this mechanism for:
- migration from one database backend to another
- upgrading from one rundeck version to another
# Export an archive
To export, visit the "Admin" link in the Rundeck page header.
Click on the link under "Export Archive" to download an archive containing the project Jobs, Executions and History.
This archive can be imported into any other Rundeck project.
The archive will contain:
- All Job definitions from the project
- All Executions from the project (both Job and Adhoc executions)
- All Execution log files (output logs)
- All History reports from the project
Note that the archive will not contain:
- The Project config file
project.propertieslocated under your
- Resource definitions (such as
resources.xmlor resources received from external providers.)
You should back up those contents separately if necessary.
# Import an archive
To import the contents of an exported archive, visit the "Admin" link in the Rundeck page header.
Click on "Import Archive" to display the import form.
Choose the rundeck archive file to import (should end with ".rdproject.jar").
The import process:
- Creates any Jobs in the archive not found in this project with a new unique UUID
- Updates any Jobs in the archive that match Jobs found in the project (group and name match)
- Creates new Executions for the imported Jobs, and creates the output log files on disk
- Creates new History reports for imported Executions and Jobs
Note that because the archive does not contain the project configuration or resource definitions, you will have to configure those separately for the new or updated project.
# Export/Import keys.
- Scenario 1 : where keys are saved in filesystem
If you keep the same filesystem and you upgrade rundeck. The keys will be migrated to the the new rundeck instance.
Example "rundeck.config.properties" Includes bash ´´´ rundeck.storage.provider.1.type=file ´´´
or if this line is missing the keys will be stored in your filesystem.
- Scenario 2: where keys are saved in Database.
If you perform a complete Database Dump and "rundeck-config.properties" Includes for example bash ´´´ rundeck.storage.provider.1.type=db ´´´ You should see the same keys in the new instance of rundeck.
- Scenario 3: Keys are saved in Database and you are moving to a different database provider
In this case you may need to manually create the keys in the new instance