I've been working with HP's Server Automation tool suite for a long time, and while it's a great tool - it's too much for a small business or home network to use (more accurately: it's way too expensive for anything less than a large company to afford).
I'm somewhat familiar with Puppet and OpenNMS for provisioning and monitoring. After googling for other information, though, it seems there's not much in the way of management tools that are mature enough to use without a lot of effort to maintain them.
Are there any other FLOSS tools (commercially supported is fine) for managing:
- server provisioning
- patch control
- software package pushing
- etc
Expansion
- integration with native provisioning is fine (kickstart, jumpstart, autoyast, unattend.txt, winpe, etc)
- a GUI of some kind would be nice, but not required
- I want to be able to setup, for example, an OS profile, and ship it to X-many devices, preferably with fields that would be filled-in during the process for hostname, IP, etc
- agent-based is preferable to non-agent-based (ie, I know I could use soemthing like pssh for package and patch management, but that requires pre-shared keys as opposed to agent/certificate authentication)
- being able to tie-in to Nagios, OpenNMS, or similar would be fantastic - so known ports, processes, and SNMP data would be great
- virtualization support would be really helpful - but I'm OK with it not being able to create the VM, just populate/provision it
If the answer to this question turns out to be, "here's a bunch of tools that are part of the solution", I'm willing to build a wrapper of some kind for my own use.
Puppet doesn't do the base system provisioning as far as I know. So you always also need the distibution's base automated system installation tool.
One could mention tools like
And some interesting ones have been named already.
These being mentioned, I believe, there are many things to take into account to answer that question:
I mean, you want to make your whole infrastructure being depending and managed with that tool, you should really sit down a bit and think what you need and write it up (not tons of paper, but a few of the most important aspects!).
I would recommend Puppet for any system information. Though as has been said, this doesn't handle provisioning of servers.
For patch management there are the following:
I've also been playing around with a project called 'The Foreman' which integrates puppet with kickstart. This though is still in early development.
On RHEL there's Red Hat Satellite.
On Debian there's (google produced) debmarshal.
As I can't comment yet, I'm just answering here to add that the open source project based on RedHat Satellite is named spacewalk
I learned about xCAT - which also seems to help fulfill at least part of the goals of my question.
Also, there is OCS for inventorying.
Right now The Foreman seems to be the best choice when it comes to Puppet integration.
But PuppetLabs are also working on a provisioning tool called Razor. There was a Presentation about it at PuppetCamp Munich which might be worth a look.
Ansible is a non agent-based management tool for ssh-based systems (focus seems to be Linux/Unix).