Determining State of Affairs on Windows Nodes

I am using chef to manage Windows boxes. I want my recipe to install a given
version of an application. If the app is already installed to that version, I
don’t want to reinstall it. Are there best practices/built-in functionality for
doing this, or do I have to roll my own? It seems like the *nix versions rely
on the native package managers to handle this functionality. Note that
"application" could be an app that gets installed in C:\Programs, or a set of
DLL’s that go in the GAC, etc.

I don't have time to look up the references for this but the majority
of Windows apps should put their uninstall details into a known
location in the registry. I believe this is a requirement for Windows
certification.

On Thu, Jun 9, 2011 at 9:01 AM, jes@ingineering.it wrote:

I am using chef to manage Windows boxes. I want my recipe to install a given
version of an application. If the app is already installed to that version, I
don't want to reinstall it. Are there best practices/built-in functionality for
doing this, or do I have to roll my own? It seems like the *nix versions rely
on the native package managers to handle this functionality. Note that
"application" could be an app that gets installed in C:\Programs, or a set of
DLL's that go in the GAC, etc.

Currently there is no 'package' provider for Windows. I would recommend creating an LWRP that encapsulates what installing an application means to your infrastructure.

I have plans to create a more generalized windows_package LWRP that works with any windows installer system that can be 'uninstalled'...(ie windows installer, inno, msi, nsis etc). Should pick up work on that following Velocity.

Seth

--
Opscode, Inc.
Seth Chisamore, Senior Technical Evangelist
IRC, Skype, Twitter, Github: schisamo

On Thursday, June 9, 2011 at 12:01 PM, jes@ingineering.it wrote:

I am using chef to manage Windows boxes. I want my recipe to install a given
version of an application. If the app is already installed to that version, I
don't want to reinstall it. Are there best practices/built-in functionality for
doing this, or do I have to roll my own? It seems like the *nix versions rely
on the native package managers to handle this functionality. Note that
"application" could be an app that gets installed in C:\Programs, or a set of
DLL's that go in the GAC, etc.

A general-purpose package provider as you describe would be be most
excellent. That's exactly what I was hoping already existed/assuming
probably didn't. When you get around to writing it, let me know if you need
testing help. In the meantime, if I come up with anything generally useful I
will holler, but most likely will do the quickest/simplest hack to start.

On Thu, Jun 9, 2011 at 11:08 AM, Seth Chisamore schisamo@opscode.comwrote:

Currently there is no 'package' provider for Windows. I would recommend
creating an LWRP that encapsulates what installing an application means to
your infrastructure.

I have plans to create a more generalized windows_package LWRP that works
with any windows installer system that can be 'uninstalled'...(ie windows
installer, inno, msi, nsis etc). Should pick up work on that following
Velocity.

Seth

--
Opscode, Inc.
Seth Chisamore, Senior Technical Evangelist
IRC, Skype, Twitter, Github: schisamo

On Thursday, June 9, 2011 at 12:01 PM, jes@ingineering.it wrote:

I am using chef to manage Windows boxes. I want my recipe to install a
given
version of an application. If the app is already installed to that
version, I
don't want to reinstall it. Are there best practices/built-in
functionality for
doing this, or do I have to roll my own? It seems like the *nix versions
rely
on the native package managers to handle this functionality. Note that
"application" could be an app that gets installed in C:\Programs, or a
set of
DLL's that go in the GAC, etc.