Sunday, December 10, 2006

The Project

I figured I should outline the general goals of my project as clearly and concisely as possible.

This year is about putting together an advanced, easily maintainable, secure, expandable computer network, begin writing a new Desktop Computing textbook for the school, setting up an internet cafe to subsidize the cost of the internet connection ($600 USD a month) and computer maintenance.

I will be Offering a class in fundamentals of desktop computing the internet, and networking concepts for the faculty after school hours, and also allowing teachers to use the computers to take online classes offered through universities.

And finally laying groundwork for future technology advances including but not restricted to solar power, DC-powered computer lab, amongst other things.

There are many possibilities in this project, and I really have to limit myself to not spending time on ideas that I cannot fully see into fruition. The most important requirement is "Easily Maintainable." I am not going to waste my time here by creating something that will fall apart as soon as Yaw, Toon, and I leave.

Right now we have a manageable build system that isn't too difficult to setup. We use a customized Windows XP install CD I made using tools from the nLiteOS project. It allowed me to create a bootable windows XP CD which includes almost all modern drivers for ethernet, audio, chipset, cpu, and video cards using driverpacks. It also let me disable many unneeded windows services, both useless, or resource intensive (Themes, balloon tips, fancy effects).

One of the best things about using nLite is that it lets me setup networking, user accounts, and workgroup/domain settings before I burn the CD. This lets us do unattended installs, we were able to do full installs on 20 machines in about 4 hours by simply putting one of the 4 CDs we burnt into the computers and selecting the drive to format and install onto. We come back about an hour later (depending on CD-ROM speed) and put the CD in a different computer.

This let us install software off our network shares onto the computers while we waited for other computers to have windows installed. This part actually takes time and requires user input. I am looking into ways to make both of these aspects of deployment easier. The unattended and WPKG projects are free network based "push" and "pull" methods for both windows installs and software deployments.

I plan on setting up a Deployment Server that will let one "Network Boot" (Booting off the network card, as opposed to the CD-ROM or Floppy) their machine on a small, separate computer network. This will let us do unattended windows XP installs without even using a CD, CD-ROM, or Floppy Disk, and is also a little cleaner than "Imaging" (Creating a Windows XP install and copying it to all other computers).

It is cleaner in a sense that I can add service packs, security updates, etc to the network-stored windows install files, and have them automatically put on any new computer systems. Many of you are familiar with the idea of reinstalling windows due to one problem or another. Now imagine not having to download hundreds of megabytes of updates and security fixes after each install.

WPKG is another beast entirely. It simplifies application installation on networks. Allowing an Administrator to select which computer builds receive what applications, and automates the whole process if need be. I can test software updates on one computer and then push the software down to all the computers on the network and have them automatically, silently, and without user input, install.

If I include the "Client" of wpkg on the windows deployment, I can have it automatically grab all the software upon first boot, install it, and reboot. Basically taking 2-3 hours (reduced from what a normal user would have to go through already) of Administrator input and futzing with a computer and having them automate all but about 5 minutes of it.