diff --git a/doc/man/cdist-type-manifest.text b/doc/man/cdist-type-manifest.text new file mode 100644 index 00000000..a2e2cc49 --- /dev/null +++ b/doc/man/cdist-type-manifest.text @@ -0,0 +1,73 @@ +cdist-types(7) +=============== +Nico Schottelius + + +NAME +---- +cdist-types - Functionality bundled + + +DESCRIPTION +----------- +A cdist type describes some kind of functionality, starting from simple stuff +like copying files until complex user auth/ldap/ kerberos infrastructure +designs. The name of every type is prefixed with two underscores (__), because +types will be executed and the two underscores prevent collisions with real +binaries (like "file"). +In general, types should be written independent of hosts (as in reusable +code), but may be used implement functionality only needed on one host +as well. +It must be assumed that the clients are pretty dumb and thus do not have high +level tools like ruby installed. If a type requires specific tools to be present +on the target, there must be another type that provides this tool and the first +type must create an object of the specific type. +If the generated code fails on the client, it must print diagnostistic messages on +stderr and exit non-zero, so the configuration is aborted. +Types may make use of other types to realise a new type or may implement some +functionality on their own. + +Types may consist of +- a number of required and optional parameters they accept, +- a manifest script that makes use of the parameters and may create other objects +- explorers that explore type specific information on the target +- a gencode script, that may generate code to be executed on the target + +Every time a type is used, a new object is created of the specific type, +with a type specific unique id that stores the parameters + + +HOW TO WRITE A NEW TYPE (TODO) +------------------------------ +Assume you want to create the new type named "coffee": + +Create the directory /etc/cdist/types/coffee/ +Create the file /etc/cdist/types/coffee/README containing a description of the +type. +If your type supports attributes, create the directory /etc/cdist/types/coffee/ +attributes. +For each attribute, create the file + /etc/cdist/types/coffee/attributes/$attribute_name which contains + + a short description on the first line + then a blank line + then a long description (probably over several lines) + +If you think your type may be useful for others, submit it for inclusion +into cdist at cdist -- at -- l.schottelius.org. + +Create /etc/cdist/types/coffee/init which reads $configinput +(either via cconfig or via environment) and outputs a block of +shell code suitable for running on the client. + + +SEE ALSO +-------- +cdist-config-layout(7), cdist-type-manifest(7), cdist-type-explorer(7), +cdist-type-gencode(7) + + +COPYING +------- +Copyright \(C) 2010-2011 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3).