Using Chef Solo on Windows for Azure

Lab Steps

Logging in to the Microsoft Azure Portal
Connecting to the Virtual Machine (RDP)
Setting Up Chef Solo on Windows
Running Your First Chef Solo Recipes on Windows
Preserving Chef Resource Idempotence with Guards
Managing Chef Cookbook Dependencies with Berkshelf
Configuring Microsoft's IIS Web Server with Chef Solo

Ready for the real environment experience?

Time Limit1h 20m


Lab Overview

Chef is a popular configuration management tool. It has built-in support for Windows and a thriving community providing convenient cookbooks for managing Windows configurations. This Lab will get you up and running with Chef Solo and help you configure a local Windows host on Azure using Chef. You will then explore Chef cookbook dependencies and the Chocolatey Windows package manager. Finally, you will configure the host to serve an Internet Information Services (IIS) website.

Lab Objectives

Upon completion of this lab you will be able to:

  • Install and set up Chef Solo on an Azure Windows VM
  • Run Chef recipes with Windows-specific resources
  • Use guards to enforce Chef resource idempotence
  • Manage Chef cookbook dependencies with Berkshelf
  • Configure Microsoft's IIS web server with Chef Solo 

Lab Prerequisites

You should be familiar with the following:

  • Chef concepts
  • Working at the command line
  • Windows and PowerShell experience are beneficial, but not required

Lab Environment

Before completing the lab instructions, the environment will look as follows:


After completing the lab instructions, the environment should look similar to:




May 5th, 2020 - Added a validation check function to check the work done in the lab

About the Author
Learning paths29

Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Security Specialist (CKS), Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.