Puppet 试图经营傀儡产量”;错误:找不到类";

Puppet 试图经营傀儡产量”;错误:找不到类";,puppet,Puppet,首先,说实话,我对木偶世界还很陌生。我正在尝试为我的服务器构建一个傀儡脚本 这是我的木偶结构的样子- . |-- environments | `-- example_env | |-- manifests | |-- modules | `-- README.environment |-- manifests | |-- node.pp | `-- site.pp |-- modules | |-- nginx | | `-- man

首先,说实话,我对木偶世界还很陌生。我正在尝试为我的服务器构建一个傀儡脚本

这是我的木偶结构的样子-

.
|-- 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
下面是我的
node.pp
site.pp
的样子

# /etc/puppet/manifests/node.pp
node werain {
  include sudoers
} 
# /etc/puppet/modules/sudoers/manifests/sudoers.pp
class sudoers {
  file { '/etc/sudoers':
    mode: '0400',
    source: 'puppet:///modules/sudoers/sudoers',
    owner: 'root',
    group: 'root'
  }
}
puppet apply /etc/puppet/manifests/site.pp --modulepath=/etc/puppet/modules/

最后,我的
sudoers.pp
文件如下所示

# /etc/puppet/manifests/node.pp
node werain {
  include sudoers
} 
# /etc/puppet/modules/sudoers/manifests/sudoers.pp
class sudoers {
  file { '/etc/sudoers':
    mode: '0400',
    source: 'puppet:///modules/sudoers/sudoers',
    owner: 'root',
    group: 'root'
  }
}
puppet apply /etc/puppet/manifests/site.pp --modulepath=/etc/puppet/modules/
知道我做错了什么吗

我正在像这样运行
puppet
命令

# /etc/puppet/manifests/node.pp
node werain {
  include sudoers
} 
# /etc/puppet/modules/sudoers/manifests/sudoers.pp
class sudoers {
  file { '/etc/sudoers':
    mode: '0400',
    source: 'puppet:///modules/sudoers/sudoers',
    owner: 'root',
    group: 'root'
  }
}
puppet apply /etc/puppet/manifests/site.pp --modulepath=/etc/puppet/modules/

我的
puppet
版本是
3.8.4
您有一个名为
sudoers
的模块,其中有一个同名的类。Puppet将在
modules/sudoers/manifests/init.pp
中查找该类的定义,但您将其放在
modules/sudoers/manifests/sudoers.pp
中。后者是Puppet查找名为
sudoers::sudoers

的类的地方,机器的主机名是什么,它是否匹配
werain
?此外,如果不推荐导入,您可以直接在站点中放置节点声明。pp
echo$HOSTNAME
=>
werain
您可以使用
nodes.pp
,但可以在
puppet.conf
中使用
manifest=/etc/puppet/manifests
。更好的是,切换到
environmentpath
。另外请注意,Puppet不是“脚本”的引擎。清单的用途与脚本略有不同。(它模拟状态而不是动作。)
init.pp
这是正确的,但是
sudoers::sudoers
不起作用。无论如何,我会接受答案。