- Joined
- Nov 12, 2002
- Location
- Rootstown, OH
So my latest project has been kinda cool because the place I'm working at let's me do whatever I want. They gave me domain admin rights on my second day. I picked up the part time work, where they intended to hire a few people to deploy a couple hundred new PCs in this business. Replacing XP machines with Win7, however they had no deployment method established - they usually just install windows and apps from scratch. That wasnt my idea of fun when looking at a 200 machine rollout, even if I had other monkeys to help me mash keyboards.
So I started by observing their configuration process, capturing all the details, noting opportunities for improvement, and documenting it. Specifically on improvements, I preloaded print drivers and tcpip printer ports through print server properties - when installing printers later, this is a huge time saver with no locating, downloading, and extracting drivers. All of that is preloaded. I also preloaded windows updates - rather than downloading 450MB of updates and waiting for configuration, or letting the updates install on their own later, its all done up front. There were also over a dozen customizations in configuration they wanted, and several complex application setups that went to every machine - I built these in as well.
So once that was all documented in a step by step checklist I made, I could estimate time requirements for their existing process. This worked out to about 4 hours per machine, including updates, setups, and configurations - my doing multiple machines at once, one person could finish about 8 a day.
The big improvement however was designing an image based deployment process. Initially I wanted to use Ghost - it was familiar, easy, and it can multicast images to many machines simultaneously at gigabit speeds. However, ghost is licensed per machine and at 23 bucks a pop, 200 machines would cost over $5000. I noted this in the documentation, then looked at alternatives for multicast imaging. I found that clonezilla can do multicast imaging, when ran in server mode on DRBL Linux... I had never used clonezilla or DRBL, but it wasnt too complex especially if you know Linux. So I set that up, and documented it for them so they could use it and do it themselves in the future - without knowing linux, drbl, or clonezilla.
The image process is custom, and goes against Microsoft recommendations - Microsoft deployment tools are complex, and really are overkill for small business environments. Sysprep must be used when deploying images however, and it can only be ran 3 times on an install before it is locked out - this prevents circumventing the need to activate windows. However it also means you can't update an image, sysprep, and deploy it more than 3 times - after 3 times you have to start from a fresh OS install.
So to get around the sysprep limitation and keep the image process very simple, I used a two image deployment process. First I created a reference image - this is a fully configured Windows setup, with all updates, apps, and custom settings... But the reference image is captured before running sysprep. Once the reference image is captured, it can be restored at any time, updated, and recaptured to keep the reference image up to date. Then to deploy systems, a deployment image is created - this is done by restoring the reference image to a machine, running "sysprep /oobe /generalize /shutdown", and then capturing an image. The resulting deployment image is sysprepped, so it can be deployed to as many machines as needed without any problems. You can also update it as many times as you wish - restore reference image, update, save reference image. Sysprep is only ran for the deployment image, which can be done as many times as needed. You never have to start over from scratch.
So finally, I created a reference image, created a deployment image, then fired up DRBL-Live from the flash drive. Once booted, I fired up clonezilla server and set it to do a multicast restore - due to network equipment and space limitations, I could only image 12 machines at once, but in only 9 minutes a batch of 12 PCs were fully imaged - all that was left to do after imaging is assign the PC name, assign the Username, and install the printers the user needs.
I imaged 96 machines in an 8 hour work day, which was actually tough still, because most my time was spent unboxing, moving PCs, and plugging in cables. Now the PCs can be configured and put on users desks in less than an hour. Alone I can do 10-20 a day, which is fast enough that they dont want to hire anyone else to assist - which is good for me, because I need the work and they will work around my school schedule. Perhaps more important than anything else, I took the time to ensure they knew how long this could take doing it their way by documenting their process, how much it could cost doing it in a professional manner, then slam dunking the process by building a better process for free with open source tools. Only downside is I'm not making any money doing it - with the cost of gas, I would actually be further ahead sitting on the couch collecting unemployment... But working beats unemployment, and they will work with my school schedule.
This is mostly for my own reference later, but if anyone would find benefit for their own work, I can share my full documentation for making DRBL/clonezilla and how to implement the two image process (and a condensed explanation for sysprep). There is a lot of work currently with companies rushing to replace XP systems in light of the April deadline.
So I started by observing their configuration process, capturing all the details, noting opportunities for improvement, and documenting it. Specifically on improvements, I preloaded print drivers and tcpip printer ports through print server properties - when installing printers later, this is a huge time saver with no locating, downloading, and extracting drivers. All of that is preloaded. I also preloaded windows updates - rather than downloading 450MB of updates and waiting for configuration, or letting the updates install on their own later, its all done up front. There were also over a dozen customizations in configuration they wanted, and several complex application setups that went to every machine - I built these in as well.
So once that was all documented in a step by step checklist I made, I could estimate time requirements for their existing process. This worked out to about 4 hours per machine, including updates, setups, and configurations - my doing multiple machines at once, one person could finish about 8 a day.
The big improvement however was designing an image based deployment process. Initially I wanted to use Ghost - it was familiar, easy, and it can multicast images to many machines simultaneously at gigabit speeds. However, ghost is licensed per machine and at 23 bucks a pop, 200 machines would cost over $5000. I noted this in the documentation, then looked at alternatives for multicast imaging. I found that clonezilla can do multicast imaging, when ran in server mode on DRBL Linux... I had never used clonezilla or DRBL, but it wasnt too complex especially if you know Linux. So I set that up, and documented it for them so they could use it and do it themselves in the future - without knowing linux, drbl, or clonezilla.
The image process is custom, and goes against Microsoft recommendations - Microsoft deployment tools are complex, and really are overkill for small business environments. Sysprep must be used when deploying images however, and it can only be ran 3 times on an install before it is locked out - this prevents circumventing the need to activate windows. However it also means you can't update an image, sysprep, and deploy it more than 3 times - after 3 times you have to start from a fresh OS install.
So to get around the sysprep limitation and keep the image process very simple, I used a two image deployment process. First I created a reference image - this is a fully configured Windows setup, with all updates, apps, and custom settings... But the reference image is captured before running sysprep. Once the reference image is captured, it can be restored at any time, updated, and recaptured to keep the reference image up to date. Then to deploy systems, a deployment image is created - this is done by restoring the reference image to a machine, running "sysprep /oobe /generalize /shutdown", and then capturing an image. The resulting deployment image is sysprepped, so it can be deployed to as many machines as needed without any problems. You can also update it as many times as you wish - restore reference image, update, save reference image. Sysprep is only ran for the deployment image, which can be done as many times as needed. You never have to start over from scratch.
So finally, I created a reference image, created a deployment image, then fired up DRBL-Live from the flash drive. Once booted, I fired up clonezilla server and set it to do a multicast restore - due to network equipment and space limitations, I could only image 12 machines at once, but in only 9 minutes a batch of 12 PCs were fully imaged - all that was left to do after imaging is assign the PC name, assign the Username, and install the printers the user needs.
I imaged 96 machines in an 8 hour work day, which was actually tough still, because most my time was spent unboxing, moving PCs, and plugging in cables. Now the PCs can be configured and put on users desks in less than an hour. Alone I can do 10-20 a day, which is fast enough that they dont want to hire anyone else to assist - which is good for me, because I need the work and they will work around my school schedule. Perhaps more important than anything else, I took the time to ensure they knew how long this could take doing it their way by documenting their process, how much it could cost doing it in a professional manner, then slam dunking the process by building a better process for free with open source tools. Only downside is I'm not making any money doing it - with the cost of gas, I would actually be further ahead sitting on the couch collecting unemployment... But working beats unemployment, and they will work with my school schedule.
This is mostly for my own reference later, but if anyone would find benefit for their own work, I can share my full documentation for making DRBL/clonezilla and how to implement the two image process (and a condensed explanation for sysprep). There is a lot of work currently with companies rushing to replace XP systems in light of the April deadline.