Tomer Paz
2014-May-27 10:55 UTC
[Puppet Users] package resource on windows: ensure version doesn't work
Hi. I have an issue with puppet package resource not verifying Version well for MSI packages on windows. I tried both puppet 3.4 and latest 3.6, the matters remains the same. When using ensure => "installed" it works fine and puppet skip running the msiexec /i... I made sure I am using MSI DisplayVersion (double verified with add/remove programs and using MS VB scripts and registry to check the package DisplayVersion) including some very common globally distributed MSIs and executables like MS products (VC2xxx for to name a few). The behavior is: Puppet re-runs msiexec /i as if it is not found. The expected behavior: Puppet to skip installation by verifying version equals. Only one exception note, I have also in-house created MSIs which are Not registered to add/remove programs list (ARPSYSTEMCOMPONENT=1) but I don't think that matters either (as also MS MSIs/Execs are not checked by version correctly). Here is a sample of how my package resource looks like, including hiera configuration: class framework_app_server_env::install () inherits framework_app_server { $gavarr = split($gav, ':') * $version = $gavarr[2]* artifactory::artifact { 'FrameworkAppServerEnvironment.msi': gav => "${gav}", ensure => present, packaging => 'msi', repository => "${artifactory_repo}", output => "${install_dir}\\FrameworkAppServerEnvironment-${version}.msi", require => Class['artifactory'] } package { 'Framework App Server Environment': * ensure => "${version}",* source => "${install_dir}\\FrameworkAppServerEnvironment-${version}.msi", install_options => [ 'ARPSYSTEMCOMPONENT=1', "INSTALLDIR=${software_dir}", '/log', "${log_dir}\\framework_app_server_env.log" ], require => [ Artifactory::Artifact['FrameworkAppServerEnvironment.msi'], File["${install_dir}"], File["${software_dir}"] ] } } and in hiera file: framework_app_server_env::artifact::gav : 'shared-components:FrameworkAppServerEnvironment:*11.2.0.0186*' I tried using notify to print ${version} while running agent -t on the agent windows machine and it printed the version perfectly. Puzzled. Tom -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/ae6edc0b-6f50-42d1-bdc1-b16eca147534%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.