summaryrefslogtreecommitdiffstats
path: root/tools/manpagegen/bcfg2-lint.8.ronn
blob: e089bf2e70ea436712f9a69c15b855bdf3978f47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
bcfg2-lint(8) -- Check Bcfg2 specification for validity, common mistakes, and style
===================================================================================

## SYNOPSIS

`bcfg2-lint` [<options>] [<plugin> [<plugin>...]]

## DESCRIPTION

`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.

`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.

`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.

  * `require-schema`:
    Require property files to have matching schema files.

## PLUGINS

See `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 *perms* 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

`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

bcfg2(1), bcfg2-server(8), bcfg2-lint.conf(5)