Ruby 傀儡角色和配置文件-找不到类

Ruby 傀儡角色和配置文件-找不到类,ruby,class,puppet,roles,profiles,Ruby,Class,Puppet,Roles,Profiles,在site.pp文件中包含角色时,出现错误“找不到类角色::developmentmachine” 在my site.pp中,我有: node 'laraveldev2-VirtualBox.local' { include roles::developmentmachine } 在我的模块文件夹(/etc/puppetlabs/code/environments/production/modules)中,我有一个角色文件夹 模块文件夹的部分树: └── roles ├──

在site.pp文件中包含角色时,出现错误“找不到类角色::developmentmachine”

在my site.pp中,我有:

node 'laraveldev2-VirtualBox.local' {
    include roles::developmentmachine
}
在我的模块文件夹(/etc/puppetlabs/code/environments/production/modules)中,我有一个角色文件夹

模块文件夹的部分树:

└── roles ├── developmentmachine │   └── init.pp └── init.pp 我已经检查了模块路径,它是正确的(如上所示)

据我所知,编写include roles::developmentmachine时会说“在roles文件夹中,在modules文件夹中,包含一个名为developmentmachine的类”,所以这应该很好

如果有人看到这个问题或有建议,请让我知道


非常感谢

顶层的
init.pp
文件仅适用于将模块名作为完全限定名的类。在“角色”模块中,这将是一个名为“角色”的类(绝对:
::角色

其他类定义应该放在以类命名的清单文件中。例如,名为
roles::developmentmachine
的类的定义应该出现在文件
modules/roles/manifests/developmentmachine.pp中。
Puppet找不到您的类,因为您已将其放在其他位置

若在一个完全限定类或定义的类型名中有两个以上的段,那个么它对应于相应清单目录的子结构。但是,它不会改变任何程序,并且在任何情况下,
init.pp
文件的特殊意义都不会应用于模块清单目录的子目录中。因此,Puppet将在文件
modules/roles/manifests/developmentmachine/init.pp
中查找名为
roles::developmentmachine::init
的类的定义

class roles::developmentmachine {
    # Code here
}