Reputation: 5962
Firstly, to be honest I'm pretty new to Puppet world. I'm trying to build a puppet script for my server.
Here's how my puppet structures looks like -
.
|-- environments
| `-- example_env
| |-- manifests
| |-- modules
| `-- README.environment
|-- manifests
| |-- node.pp
| `-- site.pp
|-- modules
| |-- nginx
| | `-- manifests
| | `-- nginx.pp
| |-- sudoers
| | |-- files
| | | `-- sudoers
| | `-- manifests
| | `-- sudoers.pp
| `-- users
| `-- manifests
| `-- users.pp
|-- puppet.conf
`-- templates
here how my node.pp
and site.pp
look like this.
# /etc/puppet/manifests/node.pp
node werain {
include sudoers
}
and
# etc/puppet/manifests/site.pp
import 'node.pp'
and finally my sudoers.pp
file look like this.
# /etc/puppet/modules/sudoers/manifests/sudoers.pp
class sudoers {
file { '/etc/sudoers':
mode: '0400',
source: 'puppet:///modules/sudoers/sudoers',
owner: 'root',
group: 'root'
}
}
Any clue what I'm doing wrong.
I'm running the puppet
command like this.
puppet apply /etc/puppet/manifests/site.pp --modulepath=/etc/puppet/modules/
my puppet
version is 3.8.4
Upvotes: 0
Views: 532
Reputation: 180201
You have a module named sudoers
, and in it a class with the same name. Puppet will look for the definition of that class in modules/sudoers/manifests/init.pp
, but you have put it in modules/sudoers/manifests/sudoers.pp
instead. That latter is where Puppet would look for a class named sudoers::sudoers
.
Upvotes: 2