Introduction
Are you still creating vSphere images by clicking in the UI? Are you doing the same to deploy these images in vSphere? You really should stop and consider automating the process with Infrastructure as Code using Packer and Terraform. Learn how to do this in this video blog post.
Video
Below is a video explanation and demo.
Video Chapters
You can skip to the relevant chapters below:
- 00:00 – Introduction
- 01:42 – Packer Windows Explanation
- 06:56 – vCenter View of Template Created
- 07:29 – Build the VM using Terraform
- 11:56 – vCenter View of VMs Created
- 12:37 – Conclusion
Overview
We continue to see an increased interest in using Infrastructure as Code tools such as Packer and Terraform in on-premises environments running vSphere. In this video blog post, we will explore this with the help of a video demo. There are two main steps here:
- First create a Windows Server 2019 template using and save it in a templates folder in vCenter using
Packer. - Then create a VM from this template using
Terraform.
Pre-requisites
The following is required to follow along:
Setup
Below is our setup diagram.

Setup Diagram
Troubleshooting Tips
- If packer gets stuck on
Waiting for IPyou may want to check your DHCP server. I’m using a home router and it had too many leases from running packer many times. I had to flush inactive DHCP clients or reboot the router which is faster. - Open the vSphere web console and take a look at the output as the VM is getting created. This can give you some hints as to what is going on.
Conclusion
In this video blog post, we demonstrated two main things:
- How to create a Windows Server 2019 image in VMware using HashiCorp
Packer. As you saw, our configuration is all defined in code. There is no need to click around inside the vSphere client to generate this image. We’ve automated the task of building gold images in VMware. This makes the process repeatable and self-documented, just a couple of benefits of IaC. - We used
Terraformto provision the Windows 2019 server VM by cloning thisPackergenerated image.
We also created a post on doing the same for a Ubuntu 20.04 image. Then another post to use this image to Build a Kubernetes k3s Cluster in vSphere with Terraform and Packer.
References
Suggested Reading
- HashiCorp Packer to Build a Ubuntu 22.04 Image Template in VMware vSphere
- Jenkins, Vault, Terraform, Ansible, and Consul Delivering an End-to-End CI/CD Pipeline
- env0 – A Terraform Cloud Alternative
Code
Hi and Welcome!
Join the Newsletter and get FREE access to all my Source Code along with a couple of gifts.
