It might feel like an impossible task to remove SCCM from your environment. To name just a few, your endpoints and servers probably rely on it for security patching, application deployments, configuration management and OS deployments. Perhaps, you don’t enjoy using it but feel that it is a necessary evil for you and your environment.

Or is it? In this series of posts (Sweet and Salty), I will be discussing how I eliminated SCCM from my environment, adopted a modern infrastructure as code approach leveraging open source technologies and how you can do the same! To begin, we will start by discussing the tools.

Salt Open by SaltStack (
Salt Open by SaltStack is an open source configuration management (although, automation engine is a more accurate term) platform that is often compared to configuration management solutions like Ansible, Puppet or Chef. It is written entirely in Python. I will save the reasons why I prefer Salt over the competitors for another post though.

This will take care of the system deployments and configuration management pieces. What about application deployments for your Windows systems? Natively, Salt can also perform this functionality but I prefer to use the integration between Salt and...

Chocolatey (
Chocolatey is a package manager for Windows. You can think of this like apt-get on Ubuntu based or yum on Red Hat based systems. It is built on the NuGet framework and leverages PowerShell for everything.

There is a community repository for many applications you probably deploy today. You can then save yourself time and internalize these for your own usage on your internal Chocolatey repository. Of course, building packages from scratch is also incredibly simple.

As I mentioned above, this series will be called “Sweet and Salty” and I will be breaking the series down into smaller posts to get you started. As such, keep an eye out for the first part of the series where I’ll be going over getting your Salt environment setup.