diff options
Diffstat (limited to 'doc/man/bcfg2-lint.txt')
-rw-r--r-- | doc/man/bcfg2-lint.txt | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/doc/man/bcfg2-lint.txt b/doc/man/bcfg2-lint.txt new file mode 100644 index 000000000..c5d2eacee --- /dev/null +++ b/doc/man/bcfg2-lint.txt @@ -0,0 +1,129 @@ +.. vim: ft=rst + +bcfg2-lint +========== + +.. program:: bcfg2-lint + +Synopsis +-------- + +**bcfg2-lint** [*options*] [*plugin* [*plugin*...]] + +Description +----------- + +:program:`bcfg2-lint` checks the Bcfg2 specification for schema +validity, common mistakes, and other criteria. It can be quite helpful +in finding typos or malformed data. + +:program:`bcfg2-lint` exits with a return value of 2 if errors were +found, and 3 if warnings (but no errors) were found. Any other non-0 +exit value denotes some failure in the script itself. + +:program:`bcfg2-lint` is a rewrite of the older bcfg2-repo-validate +tool. + +Options +------- + +-C *configfile* + Specify alternate bcfg2.conf location. + +-Q + Specify the server repository path. + +-v + Be verbose. + +--lint-config + Specify path to bcfg2-lint.conf (default `/etc/bcfg2-lint.conf`). + +--stdin + Rather than operating on all files in the Bcfg2 specification, only + validate a list of files supplied on stdin. This mode is + particularly useful in pre-commit hooks. + + This makes a few assumptions: + + Metadata files will only be checked if a valid chain of + XIncludes can be followed all the way from clients.xml or + groups.xml. Since there are multiple formats of metadata stored + in Metadata/ (i.e., clients and groups), there is no way to + determine which sort of data a file contains unless there is a + valid chain of XIncludes. It may be useful to always specify all + metadata files should be checked, even if not all of them have + changed. + + Property files will only be validated if both the property file + itself and its matching schema are included on stdin. + +Plugins +------- + +See :manpage:`bcfg2-lint.conf(5)` for more information on the +configuration of the plugins listed below. + +Bundles + Check the specification for several issues with Bundler: bundles + referenced in metadata but not found in *Bundler/*; bundles whose + *name* attribute does not match the filename; and Genshi template + bundles that use the *<Group>* tag (which is not processed in + templated bundles). + +Comments + Check the specification for VCS keywords and any comments that are + required. By default, this only checks that the *$Id$* keyword is + included and expanded in all files. You may specify VCS keywords to + check and comments to be required in the config file. (For instance, + you might require that every file have a "Maintainer" comment.) + + In XML files, only comments are checked for the keywords and + comments required. + +Duplicates + Check for several types of duplicates in the Metadata: duplicate + groups; duplicate clients; and multiple default groups. + +InfoXML + Check that certain attributes are specified in *info.xml* files. By + default, requires that *owner*, *group*, and *mode* are specified. + Can also require that an *info.xml* exists for all Cfg files, and + that paranoid mode be enabled for all files. + +MergeFiles + Suggest that similar probes and config files be merged into single + probes or TGenshi templates. + +Pkgmgr + Check for duplicate packages specified in Pkgmgr. + +RequiredAttrs + Check that all *Path* and *BoundPath* tags have the attributes that + are required by their type (e.g., a path of type symlink must have + name and to specified to be valid). This sort of validation is + beyond the scope of an XML schema. + +Validate + Validate the Bcfg2 specification against the XML schemas. + + Property files are freeform XML, but if a *.xsd* file with a matching + filename is provided, then schema validation will be performed on + property files individually as well. For instance, if you have a + property file named *ntp.xml* then by placing a schema for that file + in *ntp.xsd* schema validation will be performed on *ntp.xml*. + + +Bugs +---- + +:program:`bcfg2-lint` may not handle some older plugins as well as it +handles newer ones. For instance, there may be some places where it +expects all of your configuration files to be handled by Cfg rather than +by a mix of Cfg and TGenshi or TCheetah. + +See Also +-------- + +:manpage:`bcfg2(1)`, :manpage:`bcfg2-server(8)`, +:manpage:`bcfg2-lint.conf(5)` |