I want to use Puppet to manage deployment of internal .Net software. The CI build can generate a versioned MSI file and push that out to Puppet. I am creating an MSI with the same name, but different versions for each release. Puppet detects the missing Package and properly installs the new Package from MSI. However, Puppet does not detect that a new MSI needs to replace the already installed package. My problem seems to be the same as this closed issue <http://projects.puppetlabs.com/issues/13104>. I am running 3.1.0. My plan for deployment has been to have each CI build create the appropriately versioned MSI files and deploy them to Puppet as desired. Then, let Puppet compare the MSI versions to the versions already installed and install the new MSI if necessary. Do I have a simple bug in my implementation or do I have a bad strategy. I am considering the following: 1) Modify puppet windows package source to compare versions installed to the version of the MSI. 2) Abort the MSI strategy and have each build generate a manifest that uses the windows resources directly to complete the install (file, service, scheduled task, IIS, etc). I think I will need to create an Assembly resource that can install dlls to the GAC. 3) Put the version number as part of the package name. Thus forcing Puppet to manage each version as a separate package. I''d rather not do this because it will mean generating quite a bit of manifest code as part of the build to ensure that previous versions are uninstalled and adding the new version to the manifest. Thanks, Nathan -- 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.
Hi Nathan, On Mar 4, 2013, at 8:57 AM, Nathan Shirlberg <nathannis@gmail.com> wrote:> I want to use Puppet to manage deployment of internal .Net software. The CI build can generate a versioned MSI file and push that out to Puppet. I am creating an MSI with the same name, but different versions for each release. Puppet detects the missing Package and properly installs the new Package from MSI. However, Puppet does not detect that a new MSI needs to replace the already installed package. My problem seems to be the same as this closed issue. I am running 3.1.0. > > My plan for deployment has been to have each CI build create the appropriately versioned MSI files and deploy them to Puppet as desired. Then, let Puppet compare the MSI versions to the versions already installed and install the new MSI if necessary. > > Do I have a simple bug in my implementation or do I have a bad strategy. I am considering the following: > 1) Modify puppet windows package source to compare versions installed to the version of the MSI. > 2) Abort the MSI strategy and have each build generate a manifest that uses the windows resources directly to complete the install (file, service, scheduled task, IIS, etc). I think I will need to create an Assembly resource that can install dlls to the GAC. > 3) Put the version number as part of the package name. Thus forcing Puppet to manage each version as a separate package. I''d rather not do this because it will mean generating quite a bit of manifest code as part of the build to ensure that previous versions are uninstalled and adding the new version to the manifest. > > Thanks, > Nathan > -- > 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. > >You can specify the MSI PackageCode as the name of the package resource to ensure that particular version is installed. If you don''t know what the PackageCode is (since it''s supposed to be unique for each MSI build), you can use read it from the MSI in ruby. Search this list for more information. Josh -- 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.
Thanks for the suggestion. I''ll look into that. I have started appending the version to the package name and with the plan to use something like hiera as a lookup to determine what version should be on each machine. We would have the build server publish each version to puppet as an artifact and then "deployments" would be completed by updating hiera (or something else) to make the version active. Does that sound like a bad idea? Nathan -- 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.
On Tue, Mar 5, 2013 at 6:31 PM, Nathan Shirlberg <nathannis@gmail.com>wrote:> Thanks for the suggestion. I''ll look into that. I have started appending > the version to the package name and with the plan to use something like > hiera as a lookup to determine what version should be on each machine. We > would have the build server publish each version to puppet as an artifact > and then "deployments" would be completed by updating hiera (or something > else) to make the version active. Does that sound like a bad idea? > Nathan > > -- > 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. > > >Sounds fine, some of Microsoft''s own MSI''s do the same, e.g. ''Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148'' Josh -- Josh Cooper Developer, Puppet Labs -- 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.