即使文件存在,也缺少Puppet类
puppet repo的目录结构如下:即使文件存在,也缺少Puppet类,puppet,Puppet,puppet repo的目录结构如下: . |-- data | |-- common.yaml |-- environment | |-- environment.conf | `-- hiera.yaml |-- files | `-- cdn |-- hiera | `-- hiera.yaml |-- hiera.global.yaml |-- manifests | `-- site.pp |-- modules | `-- site |-- pr
.
|-- data
| |-- common.yaml
|-- environment
| |-- environment.conf
| `-- hiera.yaml
|-- files
| `-- cdn
|-- hiera
| `-- hiera.yaml
|-- hiera.global.yaml
|-- manifests
| `-- site.pp
|-- modules
|
`-- site
|-- profile
| |-- files
| `-- manifests
| |-- appliance
| | |-- base.pp
`-- role
`-- manifests
|-- README.md
`-- role1
`-- appliance.pp
site.pp文件如下所示:
File { backup => false }
if $::custom_facts['appliance_type'] == 'Delivery' {
include role::role0::app
}
if $::custom_facts['appliance_type'] == 'Appliance' {
include role::role1::appliance **// line where error is occuring**
}
node default {
}
运行puppet apply命令时失败,出现以下错误:
错误:评估错误:评估函数调用时出错,在节点default-puppetmaster-centos-7.vagrantup.com上找不到default-puppetmaster-centos-7.vagrantup.com(文件:/tmp/kitchen/manifests/site.pp,第9行,第3列)的class::role::role1::appliance
应用的puppet命令:
sudo-E/opt/puppetlabs/bin/puppetlabs/tmp/kitchen/manifests/site.pp--modulepath=/tmp/kitchen/modules--fileserverconfig=/tmp/kitchen/fileserver.conf--environment=kitchen\u vagrant\u puppet--environment=/etc/puppetlabs/code/environments--hiera\u config=/tmp/kitchen/hiera.global.yaml
我不明白为什么木偶找不到这个班。该类位于角色文件夹中。目录结构是否错误
编辑:
添加envirment.conf
文件的内容:
modulepath = site:modules:$basemodulepath
这是否只是因为modulepath需要包含站点
?您的清单位于站点
中,而不是模块
sudo -E /opt/puppetlabs/bin/puppet apply /tmp/kitchen/manifests/site.pp \
--modulepath=/tmp/kitchen/modules:/tmp/kitchen/site \
--fileserverconfig=/tmp/kitchen/fileserver.conf \
--environment=kitchen_vagrant_puppet \
--environmentpath=/etc/puppetlabs/code/environments \
--hiera_config=/tmp/kitchen/hiera.global.yaml
为了以防万一,我也会检查environment.conf
中的modulepath
。这仅仅是因为modulepath需要包含站点
?您的清单位于站点
中,而不是模块
sudo -E /opt/puppetlabs/bin/puppet apply /tmp/kitchen/manifests/site.pp \
--modulepath=/tmp/kitchen/modules:/tmp/kitchen/site \
--fileserverconfig=/tmp/kitchen/fileserver.conf \
--environment=kitchen_vagrant_puppet \
--environmentpath=/etc/puppetlabs/code/environments \
--hiera_config=/tmp/kitchen/hiera.global.yaml
我还要检查environment.conf
中的modulepath
,以防万一。您的布局与Puppet的默认设置有很大差异。这就是为什么需要这么多命令行选项的原因之一。它偏离的方式之一是将模块放在目录/site
,默认情况下,该目录不在模块路径上。毫无疑问,您可以通过额外的命令行选项和/或配置文件调整来解决这个问题,但也许您可以通过重新组织到Puppet自动处理的布局中来简化您的生活。站点目录是根据文档添加的,以便配置文件和角色。我不知道你在说哪些文档,但要么你误解了它们,要么它们不完整。您可以有其他模块目录,但如果有,则需要将它们添加到模块路径中。但是,对于角色和配置文件,您不需要这样做。它们所在的模块在质量上与其他模块没有区别。它们可以进入默认模块路径上的目录,例如/modules
。。站点目录被添加到environment.conf
文件中的模块路径中。编辑问题以同时显示environment.conf
的内容。我将尝试在模块目录中添加角色和配置文件,并查看其效果。当我在模块文件夹中添加角色和配置文件目录时,它确实起了作用。也许我误解了文件。谢谢。您的布局与Puppet的默认设置有很大差异。这就是为什么需要这么多命令行选项的原因之一。它偏离的方式之一是将模块放在目录/site
,默认情况下,该目录不在模块路径上。毫无疑问,您可以通过额外的命令行选项和/或配置文件调整来解决这个问题,但也许您可以通过重新组织到Puppet自动处理的布局中来简化您的生活。站点目录是根据文档添加的,以便配置文件和角色。我不知道你在说哪些文档,但要么你误解了它们,要么它们不完整。您可以有其他模块目录,但如果有,则需要将它们添加到模块路径中。但是,对于角色和配置文件,您不需要这样做。它们所在的模块在质量上与其他模块没有区别。它们可以进入默认模块路径上的目录,例如/modules
。。站点目录被添加到environment.conf
文件中的模块路径中。编辑问题以同时显示environment.conf
的内容。我将尝试在模块目录中添加角色和配置文件,并查看其效果。当我在模块文件夹中添加角色和配置文件目录时,它确实起了作用。也许我误解了文件。谢谢。我已经添加了environment.conf文件的内容。谢谢。在模块路径中添加站点目录路径显式有效。不知道为什么它不能使用environment.conf
文件。我已经添加了environment.conf文件的内容。谢谢。在模块路径中添加站点目录路径显式有效。不知道为什么它不能使用environment.conf
文件工作