Implement Continuous Integration for Machine Configuration Packages with Build Automation Tooling

Gijs Reijn
9 min readMay 7, 2024

Machine Configuration packages (formerly Guest Configuration) are one of the new ways to configure your Azure Virtual Machines or Azure Arc-Enabled servers.

Figure 1 — Automanage Virtual Machines

Those packages use Desired State Configuration (DSC) underneath to author how servers should be configured and what state they should be in.

While packages can be deployed directly using the Start-GuestConfigurationPackageRemedation cmdlet or dynamically assigned to an Azure Policy Definition, there is one notable thing when authoring Machine Configuration packages.

That notable thing is that for each package you're trying to build, it’s essential to indicate the version number of the particular package you’re trying to build. This ties directly into Continuous Integration practices.

This article explains how you can set up Continuous Integration for your package configurations. You’ll use the build automation tool InvokeBuild to take care of the automation. Having a build automation tool, helps you integrate it easily in CI/CD systems.


Before you get started and want to get your hands to work, there are some prerequisites if you want to follow along.



Gijs Reijn

Providing tips, tricks, best practices, solutions, and nonsense that might help your IT workday thrive.