Locally Managed Configuration Files

Locally-managed configuration files apply to only one system. They may be files in the system’s sandbox or files that can be deployed to the system at any time. Local files have higher priority than centrally-managed files. If a system is subscribed to a configuration channel with a given file and additionally has a locally-managed version of that file, the locally-managed version will be deployed.

The list of all local (override) configuration files for your systems includes the local configuration channels and the sandbox channel for each Provisioning-entitled system.

Click the Path of the file to see its Config File Details. Click the name of the system to which it belongs to see its System Details  Configuration  Overview page.

Including Macros in your Configuration Files

Being able to store one file and share identical configurations is useful, but in some cases you might need many variations of the same configuration file, or configuration files that differ only in system-specific details, such as host name and MAC address. In this case, you can use macros, or variables, within the configuration files. This allows you to upload and distribute a single file, with hundreds or even thousands of variations. In addition to variables for custom system information, the following standard macros are supported:

rhn.system.sid
rhn.system.profile_name
rhn.system.description
rhn.system.hostname
rhn.system.ip_address
rhn.system.custom_info(key_name)
rhn.system.net_interface.ip_address(eth_device)
rhn.system.net_interface.netmask(eth_device)
rhn.system.net_interface.broadcast(eth_device)
rhn.system.net_interface.hardware_address(eth_device)
rhn.system.net_interface.driver_module(eth_device)

To use this powerful feature, either upload or create a configuration file via the Configuration Channel Details page. Then open its Configuration File Details page and include the supported macros of your choice. Ensure that the delimiters used to offset your variables match those set in the Macro Start Delimiter and Macro End Delimiter fields and do not conflict with other characters in the file. We recommend that the delimiters be two characters in length and do not contain the percent (%) symbol.

For example, you may have a file applicable to all of your servers that differs only in IP address and host name. Rather than manage a separate configuration file for each server, you can create a single file, such as server.conf, with the IP address and host name macros included.

hostname={| rhn.system.hostname |}
ip_address={| rhn.system.net_interface.ip_address(eth0) |}

When the file is delivered to individual systems, whether through a scheduled action in the SUSE Manager Web UI or at the command line with the SUSE Manager Configuration Client (mgrcfg-client), the variables will be replaced with the host name and IP address of the system as recorded in SUSE Manager’s system profile. In this example, the deployed version will look similar to this:

hostname=test.example.domain.com
ip_address=177.18.54.7

To capture custom system information, insert the key label into the custom information macro (rhn.system.custom_info). For example, if you developed a key labeled "asset" you can add it to the custom information macro in a configuration file to have the value substituted on any system containing it. The macro would look like this:

asset={@ rhn.system.custom_info(asset) @}

When the file is deployed to a system containing a value for that key, the macro gets translated, resulting in a string similar to this:

asset=Example#456

To include a default value (for example, if one is required to prevent errors), you can append it to the custom information macro, like this:

asset={@ rhn.system.custom_info(asset) = 'Asset #' @}

This default is overridden by the value on any system containing it.

The SUSE Manager Configuration Manager (mgrcfg-manager) is available on SUSE Manager client machines to assist with system management. It will not translate or alter files, as the tool is system agnostic. The mgrcfg-manager command does not depend on system settings. Binary files cannot be interpolated.