Six months ago, in our not-for-profit project we decided to start
migrating our system management to a Puppet-controlled environment
because we are expecting our number of servers to grow substantially
between now and a year from now.
Sounds like a darn good idea to start early - Puppet is more than just config management, it's a form of documentation.
Since the decision has been made our IT guys have become a bit too
annoyed a bit too often.
They need an attitude adjustment.
"We're not programmers, we're sysadmins";
Again, attitude. You -can- make a conf file for a server right?
You can ease into the templating/'programmer' stuff as your needs and complexity evolves.
Modules are available online but many differ from one another; wheels
are being reinvented too often, how do you decide which one fits the
bill;
Tough one to answer - I always prefer the puppetlabs modules over most - and even at that, I don't use that many. Judgement call for sure. In my opinion, some modules are 'too frilly'.
Code in our repo is not transparent enough, to find how something works they have to recurse through manifests and modules they might
have even written themselves a while ago;
This doesn't sound like a puppet problem, but more so an organizational or documentation issue?
One new daemon requires writing a new module, conventions have to be
similar to other modules, a difficult process;
That daemon could be a class if it's simple enough to manage. I'm not sure what you mean by conventions, puppet enforces conventions on you pretty well doesn't it? Or are we talking along the lines of code formatting?
"Let's just run it and see how it works"
Not that bad of an idea if you take it slow and safe. I'd still start with a VM to get the gist of things.
Tons of hardly known 'extensions' in community modules: 'trocla',
'augeas', 'hiera'... how can our sysadmins keep track?
postfix, exim, sendmail, mysql, postgresql, iftop, iptraf, perl, perl modules..
Pick what you want and use it? I guess this sound more like an attitude thing again...
I can see why a large organisation would dispatch their sysadmins to
Puppet courses to become Puppet masters. But how would smaller players
get to learn Puppet to a professional level if they do not go to
courses and basically learn it via their browser and editor?
I haven't attended any courses - while I am a programmer more than a sysadmin, I found it didn't need much programming skill to get anything accomplished.
The Puppet documentation, when followed is quite thorough. Just pay attention to the built-in types and spend some time looking at how other modules are put together. I wouldn't say it's -super- easy, but it's not -hard- either. It is a bit time consuming to get your infrastructure ready for puppet, but the time invested is assured to be well spent when you expand.