FAQ
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.

Search Discussions

  • Josh Cooper at Mar 5, 2013 at 3:41 pm
    Hi Nathan,


    On Mar 4, 2013, at 8:57 AM, Nathan Shirlberg 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.
  • Nathan Shirlberg at Mar 6, 2013 at 2:31 am
    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.
  • Josh Cooper at Mar 8, 2013 at 7:24 pm

    On Tue, Mar 5, 2013 at 6:31 PM, Nathan Shirlberg 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.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppuppet-users @
categoriespuppet
postedMar 4, '13 at 4:57p
activeMar 8, '13 at 7:24p
posts4
users2
websitepuppetlabs.com

2 users in discussion

Nathan Shirlberg: 2 posts Josh Cooper: 2 posts

People

Translate

site design / logo © 2022 Grokbase