In our offices we use an Ubuntu 10.04 LTS server, and are building a little (8 seats + 1 teacher seat) teaching room. We'd like to implement fast & easy provisioning of the desktops operating systems and applications. This is what we'd like to have:
- easy & fast reinstall of all the desktop - eg. it should not be a problem to re-image them every day
- support for provisioning Windows XP, Windows 7, Ubuntu 10.04 LTS - optionally even OpenSolaris but that's not required
- choose which image / variant to install from the desktop (after network boot) and/or from a centralized (web?) interface
- fully automatic imaging, configuration, additional software install (eg. start the thing and go have lunch, come back and desktops are ready to use)
- possibly, choose the O.S. and any variation (eg, sets of additional softwares installed) in the same place - we shouldn't go here and say provision Ubuntu and go there and, say, edit puppet files to choose what to configure on it
I don't know for sure if anything is achievable :) and what to use. We have some experience with puppet for unix configuration management but it does not (yet) support windows. Even if we'll end up with OS-specific tools we'd still like to have a single entry point for specifing what to image and what to install - even if it would be a db with some in-house web interface or stuff like that.
We already have in place the basic network infrastructure, ranging from DHCP and tftp servers to storage space over nfs, ftp, http, cifs. If possible we'd like to use our Ubuntu server but if there is something too invasive to install we could get other servers up just for this purpose, either on metal or in VMs. We do not have any Windows server systems.
If it was just for linux, I'd use the already known puppet and would study cobbler or similar things. Windows-only shops use MS stuff to image & configure desktops, I suppose. We'd like to provide both :)
What do you recommend to use to best achieve our goals?