On Mon, Oct 1, 2012 at 10:39 AM, Josh Cooper <j...@puppetlabs.com> wrote: > Hi Thomas, > > On Thu, Sep 27, 2012 at 12:59 PM, Thomas Bendler > <thomas.bend...@gmail.com> wrote: >> Hi @all, >> >> does anyone manage the NSClient++ deployment with puppet? I have the strange >> behavior that I can distribute the installation package to the target server >> and install the package with the MSI provider. The relevant code is here: >> >> if $windows { >> file { >> "c:/local/source": >> ensure => directory, mode => 0770, >> owner => "Administrators", group => "Administrators"; >> >> "c:/local/source/NSClient++-0.3.9-x64.msi": >> ensure => present, mode => 0660, >> owner => "Administrators", group => "Administrators", >> require => File["c:/local/source"], >> path => $::operatingsystem ? { default => >> "c:/local/source/NSClient++-0.3.9-x64.msi" }, >> source => "puppet:///modules/monitor/nagios/NSClient++-0.3.9-x64.msi"; > > This require shouldn't be necessary as the file will autorequire its > ancestor directories. > >> >> "c:/local/nsclient/boot.ini": >> ensure => present, mode => 0664, >> owner => "Administrators", group => "SYSTEM", >> require => Package["NSClientpp"], >> notify => Service["NSClientpp"], >> path => $::operatingsystem ? { default => "c:/local/nsclient/boot.ini" >> }, >> content => template("monitor/nagios/client/boot.ini.erb"); >> >> "c:/local/nsclient/nsc.ini": >> ensure => present, mode => 0664, >> owner => "Administrators", group => "SYSTEM", >> require => Package["NSClientpp"], >> notify => Service["NSClientpp"], >> path => $::operatingsystem ? { default => "c:/local/nsclient/nsc.ini" >> }, >> content => template("monitor/nagios/client/nsc.ini.erb"); >> } >> >> package { >> "NSClientpp": >> ensure => installed, >> provider => "msi", >> source => 'c:\local\source\NSClient++-0.3.9-x64.msi', >> install_options => { >> 'INSTALLLOCATION' => 'c:\local\nsclient', >> 'ADDLOCAL' => 'ALL', >> 'START_SERVICE_ON_EXIT' => '1' >> }; >> } >> >> service { >> "NSClientpp": >> name => $::operatingsystem ? { default => "NSClientpp" }, >> ensure => "running", enable => true, >> require => Package["NSClientpp"]; >> } >> } >> >> Now to the strange thing, when the package is installed with the MSI >> provider, the service entry from the NSClient++ disapear. When I manually >> execute the installation package with option repair, it apears again ... >> until the next puppet run where it disapear again. So calling the service >> resource fail because of the missing service entry. The OS is a 2003SP2 x64, >> the puppet client has the version 2.7.19. Any ideas? > > The name of the package needs to match the "DisplayName" as specified > in the registry (and Add/Remove Programs). This used to be in the > puppet wiki page, but I don't see it in the new documentation. I'll > file a doc bug about this.
I submitted a pull request https://github.com/puppetlabs/puppet-docs/pull/107 > For this package, it should be "NSClient++ (x64)", both in the package > resource and the service resource that requires it. > > It appears what is occurring is that the second time puppet runs, it > thinks the package is not installed, so it installs it again (really a > repair). For some reason, the NSClient MSI gets confused and > uninstalls the service during the repair. > > In any case, the second time you run puppet (with --debug), you should > see something like: > > Debug: /Stage[main]//File[c:/local/nagios/NSClient++-0.3.9-x64.msi]/require: > requires File[c:/local/nagios] > Debug: /Stage[main]//Service[NSClientpp]/require: requires > Package[NSClient++ (x64)] > ... > Debug: Prefetching msi resources for package > Debug: Service[NSClientpp](provider=windows): Service NSClientpp is running > Debug: Service[NSClientpp](provider=windows): Service NSClientpp start > type is auto start > > But you should not see: > > Debug: Executing 'msiexec.exe /qn /norestart /i > c:\local\nagios\NSClient++-0.3.9-x64.msi ADDLOCAL=ALL > INSTALLLOCATION=c:\local\nsclient START_SERVICE_ON_EXIT=1' > > Josh > > -- > Josh Cooper > Developer, Puppet Labs Josh -- Josh Cooper Developer, Puppet Labs -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.