Hey guys,
I'm having some problems dividing my init.pp into components like package.pp, config.pp and service.pp. Unfortunately I'm getting several error's after running puppet-lint like:
ERROR: nrpe::package not in autoload module layout on line 1
ERROR: nrpe::service not in autoload module layout on line 1
ERROR: Syntax error (try running `puppet parser validate <file>`) on line 3
ERROR: nrpe::config not in autoload module layout on line 1
etc.
Puppet parser show's following error:
puppet parser validate /etc/puppet/git/modules/nrpe/manifests/init.pp
Error: Could not parse for environment production: Could not match '::nrpe::package': at /etc/puppet/git/modules/nrpe/manifests/init.pp:2
On client machine:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class nrpe
Here my code, maybe someone of you can give me a hint where to look at:
init.pp
### INSTALLS NRPE INCLUDING DEFINING SERVER AND SETTING UP PLUGINS ###
class nrpe {
class { '::nrpe::package': } ->
class { '::nrpe::config': } ->
class { '::nrpe::service': } ->
Class['nrpe']
}
package.pp
class nrpe::package {
package { 'nagios-nrpe-server':
ensure => 'latest',
require => Class['apt::update'],
}
### INSTALL NRPE PLUGINS WITHOUT ADDITIONAL RECOMMENDED PACKAGES
exec { 'nagios-nrpe-plugin':
unless => '/usr/bin/dpkg -l |grep nagios-nrpe-plugin',
require => Class['nrpe::package'],
command => '/usr/bin/apt-get install nagios-nrpe-plugin -y --no-install-recommends';
}
### INSTALL ICINGA PLUGINS WITHOUT ADDITIONAL RECOMMENDED PACKAGES
exec { 'nagios-plugins':
unless => '/usr/bin/dpkg -l |grep nagios-plugins',
require => Class['nrpe::package'],
command => '/usr/bin/apt-get install nagios-plugins -y --no-install-recommends';
}
}
config.pp
class nrpe::config {
file {
'/etc/nagios/nrpe.cfg':
source => 'puppet:///modules/nrpe/nrpe.cfg',
require => Class['nrpe::package'],
notify => Class['nrpe::service'],
mode => '0644',
owner => 'nagios',
group => 'nagios';
'/etc/init.d/nrpe':
source => 'puppet:///modules/nrpe/nrpe_init.d',
require => Class['nrpe::package'],
notify => Class['nrpe::service'],
mode => '0755',
owner => 'root',
group => 'root';
'/etc/nagios/nrpe.d/nrpe_all.cfg':
source => 'puppet:///modules/nrpe/nrpe_all',
require => Class['nrpe::package'],
notify => Class['nrpe::service'],
mode => '0644',
owner => 'nagios',
group => 'nagios';
'/usr/lib/nagios/plugins/check_linux_raid':
source => 'puppet:///modules/nrpe/plugins/check_linux_raid',
require => Class['nrpe::package'],
notify => Class['nrpe::service'],
mode => '0755',
owner => 'nagios',
group => 'nagios';
'/usr/lib/nagios/plugins/check_md_raid':
source => 'puppet:///modules/nrpe/plugins/check_md_raid',
require => Class['nrpe::package'],
notify => Class['nrpe::service'],
mode => '0755',
owner => 'nagios',
group => 'nagios';
}
}
service.pp
class nrpe::service {
service { 'nrpe':
ensure => running,
enable => true,
require => Class['nrpe::config'],
}
}
Folderstructure on Puppetmaster:
/etc/puppet/git/modules/nrpe/manifests# tree -d /etc/puppet/git/modules/
/etc/puppet/git/modules/
├── nrpe
│ ├── files
│ │ ├── nrpe_all
│ │ ├── nrpe_cache.cfg
│ │ ├── nrpe.cfg
│ │ ├── nrpe_init.d
│ │ ├── nrpe_var
│ │ ├── plugins
│ │ │ ├── check_linux_raid
│ │ │ ├── check_md_raid
│ │ │ └── check_mongodb.py
│ ├── manifests
│ │ ├── config.pp
│ │ ├── init.pp
│ │ ├── package.pp
│ │ ├── service.pp
│ ├── Modulefile
│ ├── README
│ ├── spec
│ │ └── spec_helper.rb
│ └── tests
│ └── init.pp
Cheers,
David