How Encodo sets up new workstations
At Encodo, we’ve recently set up a few new workstations with Windows 8.1 and wanted to share the process we use, in case it might come in handy for others.
Windows can take a long time to install, as can Microsoft Office and, most especially, Visual Studio with all of its service packs. If we installed everything manually every time we needed a new machine, we’d lose a day each time.
To solve this problem, we decided to define the Encodo Windows Base Image, which includes all of the standard software that everyone should have installed. Using this image saves a lot of time when you need to either install a new workstation or you’d like to start with a fresh installation if your current one has gotten a bit crufty.
Encodo doesn’t have a lot of workstations, so we don’t really need anything too enterprise-y, but we do want something that works reliably and quickly.
After a lot of trial and error, we’ve come up with the following scheme.
- Maintain a Windows 8.1 image in a VMDK file
- Use VirtualBox to run the image
- Use Chocolatey for (almost) all software installation
- Use Ubuntu Live on a USB stick (from which to boot)
- Use Clonezilla to copy the image to the target drive
Installed Software
The standard loadout for developers comprises the following applications.
These are updated by Windows Update.
- Windows 8.1 Enterprise
- Excel
- Powerpoint
- Word
- Visio
- German Office Proofing Tools
- Visual Studio 2013
These applications must be updated manually.
- ReSharper Ultimate
- Timesnapper
The rest of the software is maintained with Chocolatey.
- beyondcompare (file differ)
- conemu (PowerShell enhancement)
- fiddler4 (HTTP traffic analyzer)
- firefox
- flashplayerplugin
- git (source control)
- googlechrome
- greenshot (screenshot tool)
- jitsi (VOIP/SIP)
- jre8 (Java)
- keepass (Password manager)
- nodejs
- pidgin (XMPP chat)
- poshgit (Powershell/Git integration)
- putty (SSH)
- smartgit (GIT GUI)
- stylecop (VS/R# extension)
- sublimetext3 (text editor)
- sumatrapdf (PDF viewer)
- truecrypt (Drive encryption)
- vlc (video/audio player/converter)
- winscp (SSH file-copy tool)
- wireshark (TCP traffic analyzer)
Maintaining the Image
This part has gotten quite simple.
- Load the VM with the Windows 8.1 image
- Apply Windows Updates
- Update ReSharper, if necessary
- Run
choco upgrade all
to update all Chocolatey packages - Shut down the VM cleanly
Writing the image to a new SSD
The instructions we maintain internally are more detailed, but the general gist is to do the following,
- Install the SSD in the target machine
- Plug in the Ubuntu Live USB stick
- Plug in the USB drive that has the Windows image and Clonezilla on it
- Boot to the Ubuntu desktop
- Make sure you have network access
- Install VirtualBox in Ubuntu from the App Center
- Create a VMDK file for the target SSD
- Start VirtualBox and create a new VM with the Windows image and SSD VMDK as drives and Clonezilla configured as a CD
- Start the VM and boot to Clonezilla
- Follow instructions, choose options and then wait 40 minutes to clone data
- Power off Clonezilla
- Shut down Ubuntu Live
- Unplug the USB drive and stick
- Boot your newly minted Windows 8.1 from the SSD
- Install Lenovo System Update (if necessary) and update drivers (if necessary)
- Add the machine to the Windows domain
- Remote-install Windows/Office licenses and activate Windows
- Remote-install Avira antivirus
- Grant administrator rights to the owner of the laptop
- Use
sysprep /generalize
to reset Windows to an OOB (Out-of-box) experience for the new owner
Conclusion
We’re pretty happy with this approach and the loadout but welcome any feedback or suggestions to improve them. We’ve set up two notebooks in the last three weeks, but that’s definitely a high-water mark for us. We expect to use this process one more time this year (in August, when a new hire arrives), but it’s nice to know that we now have a predictable process.