sysfsysf is nothing but a tool to maintain the system and config files. Its
operations were designed to facilitate the reliable maintenance of a computer
network.
After creating the config directory on a NFS mounted section of the
file-system, the first step before using sysf is to create the
sysf.conf file and to create one entry for each system file.
One should create an entry for every configuration file that had been modified
since the installation of the operating system. On systems using rpm, one can
get the list off all the files which have been modified since they were
installed by running the command
rpm -Va
The list returned is somewhat exhaustive. One should first ignore all the
files which do not have a c in the 10th column and then discard the
files which are created automatically (like fonts.dir files for example).
One must then edit the hosts.conf. Each entry defines a host group
which share at least one config file. It must at least have an entry for the
group ALL as the list of all the computers maintained with sysf.
One must then create the config files for every host. This can be done by
hand, or using sysf. One should start with a typical host and execute the
following command:
sysf -new ALL
This creates a config file for this host for each system file that does
not have a group, a DEFAULT or a SHARED config file yet (the
.host config file is overwritten if it exists). One must then look at
each config file
and decide if they should be considered as default file or representative of
a given host group, and the suffix of the file should be changed accordingly.
One must also create the SHARED config files using the -makeshared
command.
Doing this on every host one by one will configure sysf completely.
Once this is done, it is worth performing the following test
sysf -check ALL -h ALL
to make sure that there is no discrepancy between the system and the config
files. Notice that to be able to update the system and config files from a
remote computer root must be able to rsh to that computer. If this causes
a major concern, one can deny rsh as root from any host except from the
server (which will be required if one uses tools like rdump). One will thus
be able to issue remote sysf command from no host but the server.
To modify a system file, say fstab, one would normally modify the
config file and use the command
sysf -install fstab
to update the system file. If the modified config file,
say root_cshrc.DEFAULT is a DEFAULT file one can update the system
file on all the computers in one command:
sysf -install root_cshrc -host ALL
Host group files can be updated globally by changing the word ALL by the
appropriate host group name.
Sometimes a system file, say auto.master is modified directly. To update
the corresponding system file one must be careful. If the config file is a
host file, then one simply uses the command
sysf -archive auto.master
on the host.
If the config file is a host group file, say RoomA, then
one must use the -makegroup flag:
sysf -archive auto.master -makegroup RoomA
and update the system file on every host belonging to that group:
sysf -install auto.master -host RoomA
If on the other hand the system file must remain specific to this host, one
must create the corresponding host config file using the command
sysf -new auto.master
If the config file is a DEFAULT file then one must use the
-makedef flag:
sysf -makedef auto.master
and update the system file on all the hosts unless the system file is to
remain specific to that host in which case one should use the -new flag
to create the host config file.
One extra feature of sysf is to simplify the configuration of a new host.
One has to scan the list of all config files and see which files need some
customisation (usually only a few). The corresponding host files are then
created by copying existing host files which are then edited appropriately.
Once all the config files have been created, the command
sysf -first_install ALL
makes a copy of the system files using the same name but adding the suffix
.DIST and installs all the configuration files. If the .DIST file
already exists, the system file is not copied and the existing .DIST is
left untouched.