Nathan Shirlberg
2013-Mar-04 16:11 UTC
[Puppet Users] Windows MSIs and detecting version changes.
Puppet Package for windows MSI correctly detects whether the Package is installed or not, but will not detect that the new MSI file is newer and thus the Package needs to be updated. My seems almost identical to http://projects.puppetlabs.com/issues/13104. Which was closed a year ago... I am using Puppet Community 3.1.0 I want to use Puppet to deploy our software internally. We run mostly .net applications and are coming from an in-house deployment script that is lacking in several features that Puppet is really strong in. My plan is to append an MSI generation to the end of each build and then use Puppet to selectively install the application(s). I have created MyApplication.msi (version 1.0.1) and a "later" release MyApplicaiton.msi (version 1.0.2). My Puppet manifest is as follows: package { ''MyApplication'': ensure => installed, source => ''C:\ProgramData\PuppetLabs\puppet\etc\modules\MyApplication.msi'', install_options => { ''INSTALLDIR'' => ''C:\...\MyApplication'' }, } When I run version 1.0.1, Puppet detects that the Package is missing and installs it appropriately. When I replace the msi with the new version and run Puppet, I expect that Puppet would recognize that the Package installed is version 1.0.1 and the MSI provided is version 1.0.2 and thus install the new version. I have tried setting ensure to be the specific version of the new MSI, but that gets an error because Windows Package does not implement Versionable. Any thoughts or suggestions about using this method of deployment with Puppet? I am considering: 1) modify the source<https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/windows/msi_package.rb> to recognize the versions and require the install 2) aborting the MSI and train developers to write puppet manifests that utilize the windows resources directly (files, services, scheduled tasks, etc) 3) treating each version as it''s own unique package and script the build to ensure => absent for the old versions and ensure => installed for the latest version -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Nathan Shirlberg
2013-Mar-04 17:06 UTC
[Puppet Users] Re: Windows MSIs and detecting version changes.
I am sorry to spam the board here, but I did not realize that the post was held for moderation and then tried a similar post again. Please disregard this post and reply to this one. https://groups.google.com/forum/?fromgroups=#!topic/puppet-users/NRYgzNW7ihc On Monday, March 4, 2013 10:11:01 AM UTC-6, Nathan Shirlberg wrote:> > Puppet Package for windows MSI correctly detects whether the Package is > installed or not, but will not detect that the new MSI file is newer and > thus the Package needs to be updated. My seems almost identical to > http://projects.puppetlabs.com/issues/13104. Which was closed a year > ago... I am using Puppet Community 3.1.0 > > I want to use Puppet to deploy our software internally. We run mostly > .net applications and are coming from an in-house deployment script that is > lacking in several features that Puppet is really strong in. My plan is to > append an MSI generation to the end of each build and then use Puppet to > selectively install the application(s). I have created MyApplication.msi > (version 1.0.1) and a "later" release MyApplicaiton.msi (version 1.0.2). > > My Puppet manifest is as follows: > package { ''MyApplication'': > ensure => installed, > source => > ''C:\ProgramData\PuppetLabs\puppet\etc\modules\MyApplication.msi'', > install_options => { ''INSTALLDIR'' => ''C:\...\MyApplication'' }, > } > When I run version 1.0.1, Puppet detects that the Package is missing and > installs it appropriately. When I replace the msi with the new version and > run Puppet, I expect that Puppet would recognize that the Package installed > is version 1.0.1 and the MSI provided is version 1.0.2 and thus install the > new version. I have tried setting ensure to be the specific version of the > new MSI, but that gets an error because Windows Package does not implement > Versionable. Any thoughts or suggestions about using this method of > deployment with Puppet? > > I am considering: > 1) modify the source<https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/windows/msi_package.rb> to > recognize the versions and require the install > 2) aborting the MSI and train developers to write puppet manifests that > utilize the windows resources directly (files, services, scheduled tasks, > etc) > 3) treating each version as it''s own unique package and script the build > to ensure => absent for the old versions and ensure => installed for the > latest version > > >-- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.