应用 Puppet 模块路径时出错?

应用 Puppet 模块路径时出错?

以下是我的/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",

相关内容