gehel wrote:
Hello !

I'm trying to implement a Nagios solution based on David Schmitt's
Complete Config. But I the following error when running puppetd -t -
v :

notice: Starting catalog run
err: //Node[monitoring]/nagios::target/Nagios::Host[]/File[/conf.d/
_host.cfg]/ensure: change from absent to present failed: Could not set
present on ensure: No such file or directory - /conf.d/
_host.cfg.puppettmp at /etc/puppet/modules/nagios/manifests/init.pp:40
notice: Finished catalog run in 3.91 seconds

As far as I understand, the problem comes from :

  define host($ip= $fqdn, $short_alias = $fqdn) {
    @@file {
      "${nagios_cfgdir}/conf.d/${name}_host.cfg":
        ensure => present,
        content => template( "nagios/host.erb" ),
        mode => 644,
        owner => root,
        group => root,
  tag => 'nagios',
    }
  }

When this definition is run, it seems that ${nagios_cfgdir} and $
{name} are undefined. I am probably missing something quite simple,
but I cant put my finger on it ... Any help ?



My Nagios class is as follow :

class nagios {
  $nagios_cfgdir = '/etc/nagios3'

  include apache

  package {
    nagios3 :
      alias => 'nagios',
      ensure => latest;
    [ 'nagios3-common', 'nagios-plugins-basic' ]:
       ensure => installed,
       before => Package['nagios'];
  }
  service {
    'nagios3':
      alias => 'nagios',
      ensure => running,
      hasstatus => true,
      hasrestart => true,
  }
  file {
    "$nagios_cfgdir/htpasswd.users":
      content => "admin:QqtpoTN5OGzmA",
      mode => 0640,
      owner => root,
      group => www-data,
  }

  File <<| tag == 'nagios' |>>

  define host($ip= $fqdn, $short_alias = $fqdn) {
    @@file {
      "${nagios_cfgdir}/conf.d/${name}_host.cfg":
        ensure => present,
        content => template( "nagios/host.erb" ),
        mode => 644,
        owner => root,
        group => root,
  tag => 'nagios',
    }
  }

  class target {
    debug ( "$fqdn has $nagios_parent as parent" )
    nagios::host { $fqdn: }
  }
}

And my nodes.pp :

node 'monitoring' inherits basenode {
  include apache

  include nagios

  $nagios_parent = "generic-host"
  include nagios::target
}




Thanks a lot !

    Guillaume

Unfortunately, the variable is out of scope. I ran into this problem too and sadly ended up hard coding the value all over the place because it would have been difficult to set it in one proper spot, short of site.pp. Which I may end up doing, since I hate repeating myself. That project got put on the back burner but I will be re visiting fairly soon.

--
Joe McDonagh
AIM: YoosingYoonickz
IRC: joe-mac on freenode
L'ennui est contre-révolutionnaire

--
You received this message because you are subscribed to the Google Groups "Puppet 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to