Determining State of Affairs on Windows Nodes


#1

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.


#2

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.


#3

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.


#4

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.