在site.pp文件中包含角色时,我收到错误"找不到类角色::developmentmachine"
在我的网站.pp我有:
node 'laraveldev2-VirtualBox.local' {
include roles::developmentmachine
}
在我的模块文件夹(/etc/puppetlabs/code/environments/production/modules)中,我有一个角色文件夹。
模块文件夹的部分树:
└──角色├──显影机│└──init.pp└──init.pp
developmentmachine/init.pp具有:
class roles::developmentmachine {
# Code here
}
我已经检查了模块路径,它是正确的(如上所述)。
据我所知,写include roles::developmentmachine说"在模块文件夹中的roles文件夹中包含一个类,称为developmentmachine",所以这应该没问题。
如果有人看到这个问题或有什么建议,请告诉我。
非常感谢
顶级init.pp
文件仅适用于将其模块名称作为其完全限定名称的类。在"角色"模块中,这将是一个名为"角色"(绝对值:::roles
)的类。
其他类定义应该放在以该类命名的清单文件中。例如,名为roles::developmentmachine
的类的定义应该出现在文件modules/roles/manifests/developmentmachine.pp.
中。Puppet找不到您的类,因为您已将它放在其他位置。
若在一个完全限定的类或定义的类型名中有两个以上的段,那个么它对应于相应清单目录的子结构。然而,它不会改变任何过程,而且在任何情况下,init.pp
文件的特殊意义都不适用于模块清单目录的子目录。因此,文件modules/roles/manifests/developmentmachine/init.pp
是Puppet查找名为roles::developmentmachine::init
的类的定义的地方。