I have just started a gig and have inherited a large collection of heterogeneous UNIX systems of the following flavors all running: hpux (11.11, 11.31), aix, mpras, sun solaris (sun 8 9 10), redhat (as3, as4, as5) , and suse (9 10 11). What would be the ideal from management's point of view is to have all of these systems configuration controlled and managed from hopefully one program. It is understood that each of these operating systems will have different base configurations. The items to be managed include patches, packages, and configuration files.
I have just started looking at cfengine, and looking at some type of do-it-yourself hybrid using subversion.
Management would prefer to use a commercial package if possible and was wondering if you all had any ideas of this type of application or vendors?
Thanks for your ideas, pointers, experiences, etc.
I highly recommend contacting the folks at Reductive Labs and getting a supported install of Puppet. Puppet can handle a huge range of platforms, and if management wants to spend money, Reductive will provide the experience of a commercial offering, and will give you more than your money's worth. The strength of Puppet in this kind of environment comes from two major things: 1) it has a abstraction library that does a great job of abstracting away platform differences and 2) it doesn't insist on being the sole source of truth, so you can do an incremental rollout -- very important in an environment of already-deployed systems.
I don't know of anything that will support something "out of the box" for such a wide variety of platforms. And I'm guessing that your management wants something commercial for that reason. Personally, I'd tell them to butt out, they're not the ones that'll be "managing" it anyway. But then, I'm from the old 'n cranky school of system administration. :)
Considering the diversity of your environment, you're going to end up doing a lot of tweaking and tinkering anyway, so IMHO, you're better off starting from an open foundation anyway.
Look at Capistrano, chef, cfengine, puppet, or if you're a python guy, Fabric (which looks promising, but is still pretty young).
I would recommend the infrastructures.org site. It may be a bit outdated, but the concepts are solid. Think about your infrastructure as a whole, which will have a lot more pieces than just configuration management software. Their checklist is a good starting point - using a VCS, gold server, directory server, monitoring, etc. are all pieces of the whole solution.
Ideally, you should be able to plug a new server into your network, add it to a central configuration file, and boot it up to have the OS and packages automatically installed and configured without manual intervention. In practice this takes a lot of work, and there are usually rough edges, but it's a goal.
I see two projects here. The first one being building out a holistic management system being asked here, the other being a standardization. Even if you need to stick with all the different base operating systems, for whatever reason, you need to get a handle on the release proliferation. Before too long, if not already, you will run into completed unsupported platforms.
Look for the support windows from each of those vendors and get a handle for how quickly you should begin migration.
For example: RedHat, SuSE, Solaris
If you have the budget, one recommendation would be to use one of the IBM Tivoli System Automation products. From their website:
Unfortunately, they don't list HP-UX, although if you're wanting to manage access and security, you could look at the IBM Tivoli Access Manager, which does support HP-UX as stated on their website:
Disclosure: I don't have any experience with Tivoli Access Manager, although I was formerly an IBM employee as part of the pSeries / System p development team.
Since you started to have a look at cfengine, and your management want a commercial package, try Nova (the commercial version of cfengine) : http://www.cfengine.com/nova
Same as cfengine 3, with extra features (database management, ldap connection, extra reporting, monitoring, etc).