Novell announced this week that it’s bringing out a new Provisioning tool. The tool named Baracus is supposedly able to provision servers with all your favorite flavors of linux both Deb and RPM based. It works with bear metal and the top Virutalization products. The current release runs on either SLES or OpenSuse. It is also currently only capable of being run from the command line. Coming in Mid-Jan of 2011 is a REST interface which will probably mean a bunch of web interfaces by the end of next year. The other significant part to this is that they are using Postgres for the database and claim that it will be nearly a black box. I do have to wonder what this means for ZenWorks? It may explain why Open Suse seems to have abandon Zenworks.
Are you thinking about using Joomla, Tomcat, or a traditional LAMP Stack? Do you need it up litterally Tommorrow so you can start developing a solution? Don’t worry there are solutions out there to get you up and running a base configuration before in less time that it will take you to read this article. This link to itworld.com has a great article about two solutions providers. Getting servers up can’t be any easier with the solutions provided by both Jumpbox and Turnkey Linux. Our experience so far has been that these pre-built servers proved an awesome jump start and save hours and days of reading documentation about how to set up the software. Very often the control panels that these two companies include can help even teams of people with minimal Linux Skills to get systems up and running. All of these machines should run in VMWare, Virutal Box, Parrallels and any other technolgy that supports the virtual disk/system standards. In our upcoming article about Zenworks and Groundwork wouldn’t have been possible if I would have installed the systems from scratch. The use of their Virutal Machines let me get the system up and running in about an hour each. I didn’t need to setup MySQL, Apache, or anything else just download it and started it up on my VMWare server host. So the next time you are planning a project check out these great companies and the solutions they offer before you spend to much time trying to figure stuff out before you know you have choosen the right software.
So you have seen the power and stability of Linux and are ready to get your feet wet with the little Penguin. Your Management is sold and they have started buying more and more Linux servers. How do you manage and control this growth? Where should you focus your efforts first when trying to manage all of this? Do you focus on building servers fast, or is managing your configurations the most important task at hand?
In our opinion, your end goal should be to build, manage and monitor all of your servers with an automated process via a series of scripts and applications. To determine what order to accomplish this you need to determine why you are growing. If you are growing because development efforts on Linux are in full force, you will probably want to focus on building servers fast. If your are growing because your production servers are getting large amounts of traffic, then you should probably focus on both building and managing your configuration first.
How do you build a server really fast?
On the free side of things we recommend that you use the Red Hat created system called Anaconda. Anaconda allows you to create a text file that describes almost everything about a system. When invoked, the Anaconda process will create a complete system with all of the packages you want to use installed and configured. Both Ubuntu(Debian based package system) and every RPM based system I know of like Fedora, OpenSuSe, and Mandrivia have support for Anaconda. (more detailed Anaconda information can be found here) If you have a system you want to clone or use as a base system, you will want to use Anaconda to profile the system and create the KickStart Configuration file for you. Most installers create an Anaconda created KickStart file for the system in the root users home directory. (Normally called anaconda-ks.cfg.) If you then take this file and change the machine specific information, like the host name and ip address, you can create a new system. Combine that with either the use of a PXE booting system, or command line arguments to the installer program for your configuration files location and it will be setup for you on the new machine. Normally you will set up a few templates of key system types. For instance, one Kickstart file for web servers, one for database servers and one for desktops.
If you prefer to use disk images similar to the old Ghost program from Norton(Symantec), then take look at the Clonezilla project. This project started in the educational arena and is used by a fair number of K-12 and College schools. It has the advantage of being able to manage both Linux and Windows Images. The speed to install is similar to Anaconda and Clonezilla and also has OS plug-in’s that allow you to configure the system with the unique system information. If you happen to be using VMWare they have built in cloning and templementing for a very similar this and with the same limitations. The main downside to this system and any of the other disk clone systems is that to update a piece of software you must build and then re-clone the entire system. By contrast with Ananconda, as long as the packages in the package repository are up to date, the system will be built with them. This means no additional steps are required to bring the system up to the latest patches after building.
On the paid side of the equation, the one that seems to be leading the pack is Novell’s Zenworks product. It can use both snapshots(or images) or do an Anaconda derived install. It will allow you to manage the packages and configurations on both Suse and Redhat Linux machines. The configuration of the software includes the ability to setup and manage DHCP and PXE boot servers. These two server types can combine to allow you to place a system on your network, assign the new machine to a template type and grouping, and when it boots, create the server from scratch without any assistance from a person after switching on the power. The software works well and is easy to configure and use. There is an agent that runs to allow you access to manage the configuration after the install. This agent can be configured to alert on most of the common system problems like low disk space, and high CPU load. In this role, it works best as a feeder system into a more robust logging and alerting system.
How do I keep all of my servers configuration complete and consistent?
On the paid side, I believe the best choice is the Novell Zenworks product. Several others exist, but the cost per machine is much steeper and they generally do not offer any additional features. Several companies have gone so far as to just package one of the two configuration titles I mentioned on the free side and re-produce them as their own.
On the free side the two leaders for configuration file management are CFEngine and Puppet. Both offer a framework of files, the flexibility to automate nearly any task, and agents for the systems to audit and verify that everything stays consistent after initial install. If they are so similar than what is the difference? The main difference is the syntax for the input or configuration files. Having played with both files and formats, the Puppet teams software was much easier to work with and was faster at getting to a point of configuring systems. They both have tutorials and seem to work, once they are configured. Also, both pieces of software can be configured to observe, validate and then correct if needed, what the configuration should look like from a remote server and centralize your configuration. Once you have the software set up, they will quickly become both your auditors dream and your savior. When you can show the auditors that just because you changed a file, it does not mean it will stay that way, will make even the grumpiest of them at least a little more happy. This type of system builds a tremendous level of confidence within your development and management ranks.
How long does it take to set all this up?
That really depends on the choices you make and your knowledge in the tools. People new to systems like this will generally take a day or two to get the software installed and a first attempt at building a server going. Getting to the state of complete management of all systems takes time and will depend on where you are in the system life cycle. Spending the time when you are starting out and thinking through will pay itself back in weeks or months depending on the rate you are building. Keeping it current after that is generally simple.
Managing your systems with these tools and some simple scripts reduces staff in the long run while simultaneously increasing stability and consistency. The bulk of the cost you will spend on these systems will be in the initial setup and configuration. Once the majority of the servers are incorporated into the system, the number of changes will drop tremendously. Even a server count as low as ten is more than enough to get a fast Return On Investment.
Give us your feedback in the comments by answering any of the following questions:
So what’s your favorite system management tool?
Why do you prefer it?
What did we miss?
Here is a cool how to for setting up a PXE configuration using Ubuntu. Thought everyone might find it useful.