Running a network of machines and keeping them uniform, patched and secure is a time consuming task. Sometimes even keeping track of machines can become problematic. I think every IT professional has heard stories of running machines lost in basements, closets and even inside walls.
As a systems administrator, your job is to keep track of all the machines and keep them up to date and consistent. If you have 3 web servers, they should all be identical, packages and configurations should be consistent across all the machines. Also, if you need to apply a patch to one web server, you should be able to use the same procedure on the other 2 web servers (and hopefully automate that task).
In this guide I will show you one set of tools for keeping machines consistent. For now I will focus on administering a small installation of 100 machine running a Red Hat&tm; Enterprise Linux based installation (CentOS, Fedora, or equivalent. The import part is that the system use yum and rpm packages).
There are two main parts to maintaining machines, installation and maintenance. We will install machines using PXE network booting and do some initial configuration with kickstart.
Ensuring that machines remain up to date is done with a combination of puppet and yum.
Using the combination of tools I outline here is not difficult and documentation is readily available for all the packages. Putting it all together took me a while to figure out, hopefully some of this will be useful and help someone else get up and running a bit quicker. In this guide I will give you all the information required to make your own installation system up and running.
Please let me know if there are any errors or omissions in this text, I'm still actively writing the documentation and adding in more detail as I go along. Any comments (bad/good) are welcome.