bareos: master 24a4d165

Author Committer Branch Timestamp Parent
joergs joergs master 2016-05-25 19:23 master 61aec8a7 Pending
Changeset Bareos configuration: use one file per resource

Reasons
-------

Prior versions of Bareos had one configuration file per component
(bareos-dir, bareos-sd, bareos-fd, bareos-tray-monitor, ...).

Most larger installation have splitted the configuration into separate
files, making it easier to manage the configuration.

Also we noticed, that some extra packages (bareos-webui, plugins, ...) require extra configuration
which must be included into the director configuration.

Also the new configuration API ("configure add" bconsole command) create
a configuration file pre resource.

Therefore we decided, to split the Bareos default configuration into
separate files and package it accordingly.

Naming
------

    * $CONFIGDIR refers to the configuration directory. Bareos Linux
      packages use "/etc/bareos/".

    * Components:
        * bareos-dir
        * bareos-sd
        * bareos-fd
        * bareos-traymonitor
        * bconsole
        * bat (only legacy config file: bat.conf)

    * $COMPONENT refers to one of the listed Components.

    * Legacy config file (still valid and supported, with some
      limitation when using the configuration API):
        * $CONFIGDIR/$COMPONENT.conf

Changes
-------

When updating from bareos < 16.2, most of these changes are not relevant,
as the legacy configuration will still be used.

    * configsubdirectories
        * if legacy config file ($CONFIGDIR/$COMPONENT.conf) not found,
          following wildcard path will be used to load the configuration:
            * $CONFIGDIR/$COMPONENT.d/*/*.conf
        * one config file per resource. Name of the config file is identical with the resource name.
            * e.g.
                * bareos-dir.d/director/bareos-dir.conf
                * bareos-dir.d/pool/Full.conf
            * There is one exception:
              the resource bareos-fd.d/client/myself.conf always has the file name myself.conf,
              while the name is normally set to the hostname of the system.
        * the -c command line switch takes file and directories as arguments.
          When the argument is a directory, $COMPONENT.d/*/*.conf is added to load the configuration.
    * additional package can contain configuration files that are automatically included
        * However, most additional configuration resources require configuration.
          These configuration come as example files:
            * $CONFIGDIR/$COMPONENT.d/$RESOURCE/$NAME.conf.example
            * For example, the bareos-webui comes with two config resources for the bareos-director:
                * $CONFIGDIR/bareos-director.d/profile/webui.conf
                * $CONFIGDIR/bareos-director.d/console/user1.conf.example
    * modified resource names:
        * $HOSTNAME-dir => bareos-dir
        * $HOSTNAME-sd => bareos-sd
            * make more sense when installing just the fd. Then probaly only the Address must be changed.
            * fits better into configsubdirectory structure and packaging,
              because otherwise the filename is only known at install time /and might change)
        * "Linux All" => "LinuxAll"
            * Spaces are still valid in resource names.
              However, the build configuration script wasn't able to cope the file names containing spaces.
    * bareos-traymonitor
        * also single file per resource.
        * bareos-traymonitor package only contains $CONFIGDIR/tray-monitor.d/monitor/bareos-mon.conf.
            * The other resoures are part of the related packages:
                * $CONFIGDIR/tray-monitor.d/client/FileDaemon-local.conf is part of bareos-filedaemon
                * $CONFIGDIR/tray-monitor.d/storage/StorageDaemon-local.conf is part of bareos-storage
                * $CONFIGDIR/tray-monitor.d/director/Director-local.conf is part of bareos-director
            * This way, the bareos-traymonitor will be configured automatically for the installed components.

How to use configsubdirectories
-------------------------------

    * Fresh installation
        * The easiest way to start with configsubdirectories and configuration API
          is to start with a fresh installation.
            * It will be useable immediatly after installation of the bareos-director.
            * When additional packages come with example configuration files,
              copy them to $NAME.conf, modify it to your needs and reload the director.
            * Attention:
                * when you want to remove a configuration resource
                  that has been deployed with the bareos packages,
                  it is adviced to replace the resource config file by an empty file.
                  This prevents that the resource reappears with a package update.
                    * This is mainly true for RPM Bareos packages.
                      Debian store the deployed configuration in /usr/lib/bareos/defaultconfigs/
                      and copies them to /etc/bareos/ only if there is no configuration.
                      Similar for Windows.
    * Update
        * When update to a Bareos version containing configsubdirectories (Bareos >= 16.2),
          the existing configuration will not be touched and is still the default configuration.
        * Attention: Problems can occur, if you have already splitted your configuration
          to the same subdirectories as used by the new packages ($CONFIGDIR/$COMPONENT.d/*/)
          and have implemented an own wildcard mechanism to load them.
          In this case, newly installed configuration resource files can alter
          your current configuration in adding additional resources.
        * As long as the old configuration file ($CONFIGDIR/$COMPONENT.conf) exists, it will be used.
        * The correct way to migrate to the new configuration scheme would be
          to split the configuration file into resources,
          store them in the resource directories and then remove the original configuration file.
            * This requires effort.
              It is planed to create a program that helps to migrate the settings,
              however, until now, it is not available.
            * The easy way is:
                * mkdir $CONFIGDIR/$COMPONENT.d/migrate && mv $CONFIGDIR/$COMPONENT.conf $CONFIGDIR/$COMPONENT.d/migrate
                * Resources defined in both, the new configuration directory scheme
                  and the old configuration file must be removed from one of the places,
                  best from the old configuration file,
                  after verifying that the settings are identical with the new settings.
mod - autoconf/configure.in Diff File
mod - debian/bareos-director.bareos-dir.init.in Diff File
mod - debian/bareos-director.dirs Diff File
mod - debian/bareos-director.install.in Diff File
mod - debian/bareos-director.postinst.in Diff File
mod - debian/bareos-director.postrm Diff File
mod - debian/bareos-director.service.in Diff File
mod - debian/bareos-filedaemon-ceph-plugin.install.in Diff File
mod - debian/bareos-filedaemon-glusterfs-plugin.install.in Diff File
mod - debian/bareos-filedaemon-ldap-python-plugin.install.in Diff File
mod - debian/bareos-filedaemon.install.in Diff File
mod - debian/bareos-filedaemon.postinst.in Diff File
mod - debian/bareos-filedaemon.postrm Diff File
mod - debian/bareos-filedaemon.service.in Diff File
mod - debian/bareos-storage-ceph.install.in Diff File
mod - debian/bareos-storage-fifo.install.in Diff File
mod - debian/bareos-storage-glusterfs.install.in Diff File
mod - debian/bareos-storage-tape.install.in Diff File
mod - debian/bareos-storage.install.in Diff File
mod - debian/bareos-storage.postinst.in Diff File
mod - debian/bareos-storage.postrm Diff File
mod - debian/bareos-storage.service.in Diff File
add - debian/bareos-traymonitor.dirs Diff File
mod - debian/bareos-traymonitor.install.in Diff File
mod - debian/bareos-traymonitor.postinst.in Diff File
mod - debian/bareos-traymonitor.postrm Diff File
mod - platforms/packaging/bareos.spec Diff File
mod - platforms/redhat/bareos-dir.in Diff File
mod - platforms/redhat/bareos-fd.in Diff File
mod - platforms/redhat/bareos-sd.in Diff File
mod - platforms/suse/bareos-dir.in Diff File
mod - platforms/suse/bareos-fd.in Diff File
mod - platforms/suse/bareos-sd.in Diff File
mod - platforms/systemd/bareos-dir.service.in Diff File
mod - platforms/systemd/bareos-fd.service.in Diff File
mod - platforms/systemd/bareos-sd.service.in Diff File
mod - scripts/bareos-config-lib.sh.in Diff File
mod - scripts/bareos-ctl-dir.in Diff File
mod - scripts/bareos-ctl-fd.in Diff File
mod - scripts/bareos-ctl-funcs Diff File
mod - scripts/bareos-ctl-sd.in Diff File
mod - src/cats/make_catalog_backup.pl.in Diff File
mod - src/console/console.c Diff File
add - src/defaultconfigs/bareos-dir.d/catalog/MyCatalog.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/client/bareos-fd.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/console/bareos-mon.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/director/bareos-dir.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/fileset/Catalog.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/fileset/LinuxAll.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/fileset/SelfTest.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/fileset/Windows All Drives.conf Diff File
add - src/defaultconfigs/bareos-dir.d/job/BackupCatalog.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/job/BackupClient1.conf Diff File
add - src/defaultconfigs/bareos-dir.d/job/RestoreFiles.conf Diff File
add - src/defaultconfigs/bareos-dir.d/job/backup-bareos-fd.conf Diff File
add - src/defaultconfigs/bareos-dir.d/jobdefs/DefaultJob.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/messages/Daemon.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/messages/Standard.conf.in Diff File
add - src/defaultconfigs/bareos-dir.d/pool/Differential.conf Diff File
add - src/defaultconfigs/bareos-dir.d/pool/Full.conf Diff File
add - src/defaultconfigs/bareos-dir.d/pool/Incremental.conf Diff File
add - src/defaultconfigs/bareos-dir.d/pool/Scratch.conf Diff File
add - src/defaultconfigs/bareos-dir.d/schedule/WeeklyCycle.conf Diff File
add - src/defaultconfigs/bareos-dir.d/schedule/WeeklyCycleAfterBackup.conf Diff File
add - src/defaultconfigs/bareos-dir.d/storage/File.conf.in Diff File
add - src/defaultconfigs/bareos-fd.d/client/myself.conf.in Diff File
add - src/defaultconfigs/bareos-fd.d/director/bareos-dir.conf.in Diff File
add - src/defaultconfigs/bareos-fd.d/director/bareos-mon.conf.in Diff File
add - src/defaultconfigs/bareos-fd.d/messages/Standard.conf Diff File
rm - src/defaultconfigs/bareos-sd.d/device-gluster.conf Diff File
add - src/defaultconfigs/bareos-sd.d/device/FileStorage.conf.in Diff File
add - src/defaultconfigs/bareos-sd.d/director/bareos-dir.conf.in Diff File
add - src/defaultconfigs/bareos-sd.d/director/bareos-mon.conf.in Diff File
add - src/defaultconfigs/bareos-sd.d/messages/Standard.conf Diff File
add - src/defaultconfigs/bareos-sd.d/storage/bareos-sd.conf.in Diff File
add - src/defaultconfigs/tray-monitor.d/client/FileDaemon-local.conf.in Diff File
add - src/defaultconfigs/tray-monitor.d/director/Director-local.conf.in Diff File
add - src/defaultconfigs/tray-monitor.d/monitor/bareos-mon.conf.in Diff File
add - src/defaultconfigs/tray-monitor.d/storage/StorageDaemon-local.conf.in Diff File
mod - src/dird/Makefile.in Diff File
mod - src/dird/dbcheck.c Diff File
mod - src/dird/dird.c Diff File
mod - src/dird/ua_configure.c Diff File
mod - src/dird/ua_restore.c Diff File
mod - src/filed/Makefile.in Diff File
mod - src/filed/filed.c Diff File
mod - src/lib/bsys.c Diff File
mod - src/lib/parse_conf.c Diff File
mod - src/lib/parse_conf.h Diff File
mod - src/lib/protos.h Diff File
mod - src/lib/res.c Diff File
mod - src/plugins/filed/Makefile.in Diff File
add - src/plugins/filed/cephfs-conf.d/bareos-dir.d/fileset/plugin-cephfs.conf.example Diff File
add - src/plugins/filed/cephfs-conf.d/bareos-dir.d/job/BackupCephfs.conf.example Diff File
add - src/plugins/filed/cephfs-conf.d/bareos-dir.d/job/RestoreCephfs.conf.example Diff File
add - src/plugins/filed/gfapi-conf.d/bareos-dir.d/fileset/plugin-gfapi.conf.example Diff File
add - src/plugins/filed/gfapi-conf.d/bareos-dir.d/job/BackupGFAPI.conf.example Diff File
add - src/plugins/filed/gfapi-conf.d/bareos-dir.d/job/RestoreGFAPI.conf.example Diff File
rm - src/plugins/filed/plugin-cephfs.conf Diff File
rm - src/plugins/filed/plugin-gfapi.conf Diff File
rm - src/plugins/filed/plugin-python-ldap.conf.in Diff File
rm - src/plugins/filed/plugin-rados.conf Diff File
add - src/plugins/filed/python-ldap-conf.d/bareos-dir.d/fileset/plugin-ldap.conf.example.in Diff File
add - src/plugins/filed/python-ldap-conf.d/bareos-dir.d/job/backup-ldap.conf.example Diff File
add - src/plugins/filed/python-ldap-conf.d/bareos-dir.d/job/restore-ldap.conf.example Diff File
add - src/plugins/filed/rados-conf.d/bareos-dir.d/fileset/plugin-rados.conf.example Diff File
add - src/plugins/filed/rados-conf.d/bareos-dir.d/job/BackupRados.conf.example Diff File
add - src/plugins/filed/rados-conf.d/bareos-dir.d/job/RestoreRados.conf.example Diff File
mod - src/qt-tray-monitor/mainwindow.cpp Diff File
mod - src/qt-tray-monitor/mainwindow.h Diff File
mod - src/qt-tray-monitor/monitoritemthread.cpp Diff File
mod - src/qt-tray-monitor/tray-monitor.cpp Diff File
mod - src/qt-tray-monitor/tray-monitor.pro.in Diff File
mod - src/qt-tray-monitor/tray_conf.cpp Diff File
mod - src/qt-tray-monitor/tray_conf.h Diff File
mod - src/stored/Makefile.in Diff File
mod - src/stored/backends/Makefile.in Diff File
add - src/stored/backends/gfapi_device.d/bareos-sd.d/device/GlusterStorage.conf.example Diff File
add - src/stored/backends/unix_tape_device.d/bareos-sd.d/device/autochanger-0.conf.example Diff File
mod - src/stored/stored.c Diff File