The Bcfg2 repository has a bunch of parts, each with different functions. Cfg/ -> Configuration file repository Pkgmgr/ -> Package indices for different images SSHbase/ -> SSH Key data files etc/ -> Single files for generators or system wide settings Adding to the repository: 1. If the addition is a single package or configuration file (without any associated service) it can be added to etc/base.xml. This file contains single items which need to be installed on clients. Entries can be nested, depending on where they should be installed. Global entries go at the top level, as do containers corresponding to particular Images. Items which should be on all instances of an image should directly inside of the Image tag, and containers for classes can also be added at this level. In the above example, /etc/passwd and group belong on all machines, while /etc/motd belongs on all debian-sarge machines. the package gdm belongs only on debian-sarge machines in class workstation. 2. If a package is associated with a service, then it should be installed as a part of a bundle. This means that the installation mechanism will ensure that all components are installed properly and that services are restarted when any underlying components change. The bundle making process consist of the following steps: - Create the bundle file. (look at /Bundler/ssh.xml for an example) This file contains a list of all interrelated configuration items. Abstraction based on system (a grouping of images) is possible in this file. Note that explicit configuration data, like file contents or package versions aren't specified in this file. - Add all new configuration items into the generator sources. The package list automatically contains all packages available, so it shouldn't need to be changed. Config files must be added to the repository in /Cfg. Services must be activated in /etc/services.xml. - Activate the bundle for a class in /etc/metadata.xml In all cases, run /usr/sbin/ValidateBcfg2Repo after changes are made. This wil check that the files still parse (ie typos, or quote errors) and check their values against xml schemas, which will ensure that all element names are correct and that required attributes are included.