Previous Next Table of Contents

13. System profile versioning

This is a technology allowing one to do the following things:

13.1 Sub-systems and configuration files

Linux stores configuration information in configuration files. In Linuxconf all related configuration file are member of a sub-system. A sub-system has a key name (netclient, netaccess) and a description which can be translated. The following things apply to configuration files and sub-systems:

13.2 Archiving families

When archiving a sub-system, one must specify a destination hierarchy. This effectively correspond to a sub-directory in

        /etc/linuxconf/archive
        

Two system profile which elect to archive a given sub-system in the same family are sharing the state of the sub-system. This means that switching from one system profile version to another won't affect the state of the configuration files member of the given sub-system.

13.3 Profile version

A profile version is a recipe which tells Linuxconf in which family each sub-system must be archived.

13.4 Operation done on the archive

Most archive operation are done by calling a script called

cfgarchive
. User may define a new one and change the path right from the user interface (since it is just another command Linuxconf is calling). A user may elect to define a script that archived into a central repository on a server (An SQL database ?).

Structure of the archive

Archived file are stores in the following path:

        /etc/linuxconf/archive/FAMILY/...
        

where FAMILY is the family name defined in the profile version. Inside this directory, you will find a normal Linux hierarchy (created on demand) with normal configuration files (with the suffix ,v if RCS is available). So you have various well known directory there (etc, var, ...).

Archiving

Archiving is done by piping the configuration file to cfgarchive. It receives the path of the config file and the archiving family.

When archiving a file, Linuxconf insert a control line at the beginning telling the status of the file. The fact that a configuration file does not exist for example is archived. For cfgarchive, there is always something to archive.

Extracting

Extracting is also done using the

cfgarchive
command. By using the first line retrieve from it, Linuxconf can tell if the file exist or not. If not, Linuxconf will remove the current copy.

Auditing / diffs

The

cfgarchive
command is using the RCS system to archive the config file. If RCS is not available, the config file is simply stored on disk. So one can only retrieve the last copy archived.

Checksuming


Previous Next Table of Contents