以下是我的/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://
。
我该如何修复我的模块路径以确保其正常工作?
答案1
除非您想自定义文件夹布局modules
,否则无需在 中进行设置modulepath
。/etc/puppet.conf
如果您不做任何设置,最常见的默认值是/etc/puppet/modules:/usr/share/puppet/modules
(在开源版本中)或/etc/puppetlabs/puppet/modules:/opt/puppet/share/puppet/modules
(在 Puppet Enterprise 中)。如果不是这种情况,请设置:
modulepath=/etc/puppet/modules
Shane Madden 的信息是正确的,但它不适用于您当前的modulepath
设置,因为 puppet 会直接在 下查找您的模块/etc/puppet
。除非您想将它们放在那里(您可能不想),否则您需要修复modulepath
并使用:
source => "puppet:///modules/fangs/sample.txt",
正如 Shane 所建议的那样。
答案2
当使用puppet://
路径时,“文件”是隐含的。
相反,尝试:
source => "puppet:///modules/fangs/sample.txt",