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