The one thing that nobody can deny Nix based OSes have down pat is the package manager. The ability to install software on demand from trusted sources is without a doubt one of the coolest things I’ve experienced using Linux. You need a media editing suite? No problem! A better text editor? Take your pick! Whether it’s RPMs or ppa’s, via command line with yum and apt-get or in the GUI with Synaptic, that ability to install packages, updates and full software products is simply amazing!
In terms of configuration management this makes provisioning Linux from infrastructure as code tools like Ansible, Puppet and Chef insanely easy. Unfortunately Windows does not have this feature. Sure there is an app store similar to current smart phones in windows 10 (if there were any apps to download that is), but pretty much all CM solutions are geared towards server based environments so fully automated configuration management isn’t as simple as it would be with Centos or Ubuntu.
So how do we deal with installing software through CM on Windows? One way is to package the software as part of the CM script. If you version control those scripts in Git, you could feasibly include each software package as a submodule to git, but that means that you have to create a separate git repository for every package you use. In some of the environments that I’m dealing with, there may be as many as 30 or 40 software dependencies on a whole environment so that means a lot of repos. Tracking binaries with git is not really efficient either. Every time you update the package, it snapshots those binaries so you can end up with massive repos for small software packages. These take time to download and can slow the entire CM process down massively.
If only there was a decent package manager for windows like ppa or rpm…….
Well hold on to your socks guys because we are in luck. There is a package manager for windows that works just like it’s Linux cousins. It’s called Chocolatey and even though it’s early days for me and I’ve not had much exposure yet, it’s phreaking amazing!
I had a demonstration from Rob Reynolds and Mike at RealDimensions software and my jaw was hitting the floor through the whole presentation. There is a public repository with so many applications available that it a desktop user can get pretty much whatever they want. For the corporate environments there is the ability to host your own private repo in which you can create your own secure validated apps on. Creating packages is extremely easy and all the options you need to change are clearly laid out in the configuration files. There is a business option that allows you to create packages from a host of windows installers.
I am impressed with what I’ve seen so far. I’ll certainly be blogging about my experience over the coming weeks.