One issue we've run into lately is that keeping documentation up to
date with the proper configs is somewhat painful.  As a little
background, our network is separated into ~40 individual network
segments, which yes, that means I would need about ~40 puppet master
servers.  Luckily, we have ways of copying configs automatically out
to the puppetmasters.

I read through the 
http://reductivelabs.com/trac/puppet/wiki/DocumentingManifests
and  http://reductivelabs.com/trac/puppet/wiki/ModuleDocumentationStandards
but it's not really fleshed out.  However, neither is really concerned
with the documentation of the actual host, but rather seem to be
concentrating on the documentation of the manifests and modules.

In any case, we've run into an issue that we need to be able to build
documentation properly, and I thought it might be a good idea to be
able to generate the documentation from puppet itself for a 'server
build doc', so to speak.  We've run into this issue for three reasons
-

1) It's hard to keep docs up to date with configs - you are basically
updating information in two places
2) Documents are required by audit, even if we don't use them
3) In certain networks, we *do* need documents, because we don't have
puppetmasters.

Any idea how easy this would be to do?  I had two thoughts on it and
I've been trying to go through the code, but to a relatively newcomer
to Ruby, it's not the easiest project. :)

Thought 1
Modify the 'noop' feature to be able to run on a fake node and assume
that every part of the manifest for that node must be applied.  This
would net you the result of all changes that must be made to a host
and you could just include it in a document.

Thought 2
Modify the providers to include a 'doc' attribute and an option to
print out the documentation for a certain node.  Generate the manifest
and print out the doc attributes.  This could probably even go into
the type, rather than the provider, depending on how detailed the
documentation needs to be - do you need 'useradd -u 551 shajducko' or
do you just need 'Add user shajducko'?

Again, I have no idea how difficult these would be, but at this point,
keeping documentation up to date for server builds plus the manifests
and their documentation isn't working.  And, unfortunately, it doesn't
fly with auditors when you say 'Well, I just install a base system and
then run puppet'. :/

At this point, I've had to code a simple ruby script that puts
together a bunch of yaml files ( with an abundance of merge keys ) for
specific hostnames and then spits out the combined yaml as a document
- but again, still have to update the documentation separate from the
configs.

Any thoughts welcome.

sh

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to