The principal location for system configuration information is within /etc/rc.conf. This file contains a wide range of configuration information, principally used at system startup to configure the system. Its name directly implies this; it is configuration information for the rc* files.
An administrator should make entries in the rc.conf file to override the default settings from /etc/defaults/rc.conf. The defaults file should not be copied verbatim to /etc - it contains default values, not examples. All system-specific changes should be made in the rc.conf file itself.
A number of strategies may be applied in clustered applications to separate site-wide configuration from system-specific configuration in order to keep administration overhead down. The recommended approach is to place site-wide configuration into another file, such as /etc/rc.conf.site, and then include this file into /etc/rc.conf, which will contain only system-specific information.
As rc.conf is read by sh(1) it is trivial to achieve this. For example:
. rc.conf.site hostname="node15.example.com" network_interfaces="fxp0 lo0" ifconfig_fxp0="inet 10.1.1.1"
defaultrouter="10.1.1.254" saver="daemon" blanktime="100"
The rc.conf.site file can then be distributed to every system using rsync or a similar program, while the rc.conf file remains unique.
Upgrading the system using make world will not overwrite the rc.conf file, so system configuration information will not be lost.
Contact the Documentation mailing list for comments, suggestions and questions about this document.