After many years of maintaining a VMware Horizon environment of Windows 7 virtual desktop pools, migrating to Windows 10 presented an opportunity apply lessons learned and address observed pain points. One of my goals for this migration was the introduction of automation into the image creation and customization process. I also wanted a similar process for my lab. In this post, I would like to highlight the benefits and motivations for building such a solution.
Certainly, automation is a popular topic. Cries to “automate all the things”, use of continuous integration and continuous deployment pipelines within development practices, and deployment and configuration driven by infrastructure as code are all part of the modern information technology landscape.
Shared across all these practices is the idea of repeatability. Within the context of building and maintaining a desktop image there are many tasks that need to be consistently performed. This ranges from large scale tasks, such as building a entire new desktop image, to small scale tasks, such as consistently installing a desktop agent across several different installs. Regardless of the method, being able to repeatedly perform tasks improves the ability to maintain the desktop environment and confidently scope changes to only the intended actions. Removing manual actions removes chances to accidentally introduce unintended changes.
In his blog post, VDI in the Time of Frequent Windows 10 Upgrades, Sean Massey (@seanpmassey) provides some detail on the advantages of an automated deployment process in supporting the twice a year Windows 10 feature release schedule and associated modern lifecycle servicing policy. Just as this process allows for handling the deployment of new Windows releases, this same approach can also reduce the burden of updating other software elements within the desktop image.
As an example, consider deploying a new version of VMware Tools. Within a Horizon environment, one needs to uninstall the Horizon Agent, upgrade VMware tools, and then install the Horizon Agent . In order to preserve all existing functionality, this new install needs to match the previous installation in feature selection. A similar situation would occur in migrating pools from View Composer based linked clones to using Instant Clone technology.
In addition to providing repeatable processes and addressing the need for regular changes within the environment, automating repeated tasks removes the burden of having to manually perform repetitive tasks. The PDF version of VMware’s Creating an Optimized Windows Image for a VMware Horizon Virtual Desktop is 90 pages long. While there is value in working through the entire document a limited number of times, once the relevant steps have been identified, there is little value in manually clicking around Windows to perform optimizations and verify settings every time an image is needed or an existing image modified. This is particularly noticeable in lab or test environments, where it may be desirable to rapidly produce several images with minor controlled variations between one another.
Currently I am approaching this in the same manner Sean proposes, starting a new installation process each time. However, Chris Hildebrandt (@childebrandt42), has put together a process to automate the maintenance of existing images that is worth reviewing as you develop your own approach. I look forward to covering more of my work on this topic in future posts.