Archives

Archive usecases

The archive feature of Rudder allows to:

  • Exchange configuration between multiple Rudder instances, in particular when having distinct environments;
  • Keep an history of major changes.

Changes testing

Export the current configuration of Rudder before you begin to make any change you have to test: if anything goes wrong, you can return to this archived state.

Changes qualification

Assuming you have multiple Rudder instances, each on dedicated for the development, qualification and production environment. You can prepare the changes on the development instance, export an archive, deploy this archive on the qualification environment, then on the production environment.

[Warning]Versions of the Rudder servers

If you want to export and import configurations between environments, the version of the source and target Rudder server must be exactly the same. If the versions don’t match (even if only the minor versions are different), there is a risk that the import will break the configuration on the target Rudder server.

Concepts

In the Administration > Archives section of the Rudder Server web interface, you can export and import the configuration of Rudder Groups, Directives and Rules. You can either archive the complete configuration, or only the subset dedicated to Groups, Directives or Rules.

When archiving configuration, a git tag is created into /var/rudder/configuration-repository. This tag is then referenced in the Rudder web interface, and available for download as a zip file. Please note that each change in the Rudder web interface is also committed in the repository.

[Warning]Warning

Currently, Archiving also add all unstaged files in the commit in /var/rudder/configuration-repository. So it can change the Techniques used by Rudder (Rudder uses the latest commit in git as a reference). You should away ensure that there are no unstaged files before doing any Archive to avoid any side effect. In the future, Rudder will prevent any Archive in Techniques or Generic Methods are not commited.

The content of this repository can be imported into any Rudder server (with the same version).

Archiving

To archive Rudder Rules, Groups, Directives, or make a global archive, you need to go to the Administration > Archives section of the Rudder Server web interface.

To perform a global archive, the steps are:

  1. Click on Archive everything - it will update the drop down list Choose an archive with the latest data
  2. In the drop down list Choose an archive, select the newly created archive (archives are sorted by date), for example 2015-01-08 16:39
  3. Click on Download as zip to download an archive that will contains all elements.

Importing configuration

On the target server, importing the configuration will "merge" them with the existing configuration: every groups, rules, directives or techniques with the same identifier will be replaced by the import, and all others will remain untouched.

To import the archive on the target Rudder server, you can follow the following steps:

  1. Uncompress the zip archive in /var/rudder/configuration-repository
  2. If necessary, correct all files permissions: chown -R root:rudder directives groups parameters ruleCategories rules techniques and chown -R ncf-api-venv:rudder ncf/50_techniques techniques/ncf_techniques
  3. Add all files in the git repository: git add . && git commit -am "Importing configuration"
  4. Finally, in the Web interface, go to the Administration > Archives section, and select Latest Git commit in the drop down list in the Global archive section, and click on Restore everything to restore the configuration.
[Tip]Tip

You can also perform the synchronisation from on environment to another by using git, through a unique git repository referenced on both environment.

For instance, using one unique git repository you can follow this workflow:

  1. On Rudder test:

    1. Use Rudder web interface to prepare your policy;
    2. Create an archive;
    3. git push to the central repository;
  2. On Rudder production:

    1. git pull from the central repository;
    2. Use Rudder web interface to import the qualified archive.

Deploy a preconfigured instance

You can use the procedures of Archiving and Restoring configuration to deploy preconfigured instance. You would prepare first in your labs the configuration for Groups, Directives and Rules, create an Archive, and import the Archive on the new Rudder server installation