Tony's ramblings on Open Source Software, Life and Photography

Linux Network in a Box

After having finished implementing Puppet on our network to simplify management and deployment, I started wondering...

Puppet allows you to set up a series of recipes designed for application deployment on your network. Once you have a batch of recipes, you simply assign those to specific hosts and puppet will do the hard work of making sure everything is installed and configured per your scripts. It takes a bit more work on the frontend but it adds the comfort that you have better documentation, you can easily use version management to archive how all of your machines have been configured, and it makes deploying similar setups or disaster recovery a breeze.

So I started wondering - how long until some vendor sells a Linux "network in a box" for small businesses? I'm thinking a small "cube" computer with Linux preinstalled that has PXE boot, preconfigured LDAP, a nice interface for adding machine accounts and a series of prefab puppet scripts.

Throw a little gem like that online, tell it the names you're going to use for various computers on the network, specify what services each of those computers will run (i.e. LAMP, LDAP Replication, Postfix, Desktop, etc.) and then PXE boot + install workstations and servers automatically.

That's essentially what I'm doing now, albeit customized for my own deployments. I can go into the LDAP tree, create a new machine, assign various tasks to that machine, then use PXE network boot to install Linux and have everything automatically updated, configured and installed to perform the selected tasks. Want another database server that automatically runs a nightly backup across the network to your backup server? Just assign "LAMP" and "dbbackup" to the computer name in LDAP and it's done.

I would think that systems integrators wanting to simplify their installations would find something like this a huge time saver.

I know I mentioned this idea back on September 30th, but the more I've used and configured the system the more I think it could really be a good idea. I've already configured my own network to automatically install and configure the following services simply by adding the class to the computer's LDAP entry:

Apache + PHP
MySQL
PHPMyAdmin
PHPLDAPAdmin
DHCP3 server with custom PowerDNS integration
Postfix mail server
PowerDNS server with LDAP backend
Samba PDC
LDAP Server replication
MySQL database backup over network
SUDO configuration for "Domain Admins"
Ganglia client and server
PXE Boot server
Virtual Server Host
Desktop home directory backups
Cups client setup for network printers
Basic desktop firewall
Disable USB storage devices for security
Deploy custom fonts we use in marketing
Force Gnome screensaver settings
Deployment of two different application servers we developed

The beauty is that I know if for instance my Samba PDC server were to die, I could easily replace it by simply assigning that task to another machine. The same goes for any of the tasks above. It also means I can completely deploy Linux workstations in about 2 minutes by using PXE Boot and assigning the basic Linux desktop template to the machine name in LDAP.


Categories: