这是我的一个片段/etc/puppet/puppet.conf
[main]
modulepath = /etc/puppet
当我尝试在init.pp
文件中使用此路径时出现错误
etc/puppet/modules/fangs/manifests# puppet apply init.pp
err: /Stage[main]//File[/tmp/test]: Could not evaluate: Could not retrieve information
from environment production source(s) puppet:///modules/fangs/files/sample.txt at /etc/puppet/modules/fangs/manifests/init.pp:7
notice: Finished catalog run in 0.05 seconds
这是我的init.pp
文件的内容
file { '/tmp/test':
ensure => file,
mode => '0777',
source => "puppet:///modules/fangs/files/sample.txt",
# source => "/etc/puppet/modules/fangs/files/sample.txt",
}
当我使用source => "/etc/puppet/modules/fangs/files/sample.txt",
带有完整文件路径而不是模块路径的注释源时,它可以正常运行puppet://
。
如何修复我的模块路径以确保它正常工作?
使用
puppet://
路径时,“文件”是隐含的。相反,请尝试:
除非您想自定义
modules
文件夹的布局,否则无需modulepath
在/etc/puppet.conf
. 如果您不理会它,最常见的默认设置是/etc/puppet/modules:/usr/share/puppet/modules
(在开源版本中)或/etc/puppetlabs/puppet/modules:/opt/puppet/share/puppet/modules
(在 Puppet Enterprise 中)。如果这不是您的情况,请设置:Shane Madden 的信息是正确的,但它不适用于您当前的
modulepath
设置,因为 puppet 会直接在/etc/puppet
. 除非您想将它们放在那里(您可能不想),否则您需要修复modulepath
并使用:正如Shane建议的那样。