错误:无法初始化全局默认设置:无法在puppet.conf中设置modulepath设置

错误:无法初始化全局默认设置:无法在puppet.conf中设置modulepath设置,puppet,Puppet,我在设置木偶主人的modulepath时遇到问题 # puppet -V 4.10.5 这是默认的modulepath # puppet config print modulepath /etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules 我必须添加两个目录 /etc/puppetlabs/code/environmen

我在设置木偶主人的modulepath时遇到问题

# puppet -V
4.10.5
这是默认的modulepath

# puppet config print modulepath
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules
我必须添加两个目录

  • /etc/puppetlabs/code/environments/production/modules/tools
  • /etc/puppetlabs/code/environments/production/modules/core
。。。给我的modulepath。因此,我正在这样做:

# puppet config set modulepath "/etc/puppetlabs/code/environments/production/modules/tools:/etc/puppetlabs/code/environments/production/modules/core:`puppet config print modulepath`"
但我得到了这个错误:

# puppet config print modulepath
Error: Could not initialize global default settings: Cannot set modulepath settings in puppet.conf
my puppet.conf中的modulepath看起来正常:

# grep modulepath /etc/puppetlabs/puppet/puppet.conf
modulepath = /etc/puppetlabs/code/environments/production/modules/tools:/etc/puppetlabs/code/environments/production/modules/core:/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules

我做错了什么,或者这是一个bug?

这些额外的模块路径特定于您的生产目录环境,因此它们可以像这样附加到您的生产目录环境的
environment.conf
中(所以不允许我很好地格式化):

#/etc/puppetlabs/code/environments/production/environment.conf
/etc/puppetlabs/code/environments/production/modules/tools:/etc/puppetlabs/code/environments/production/modules/core:$basemodulepath

您的
$basemodulepath
puppet.conf
中指定,通常位于
/etc/puppetlabs/puppet/puppet.conf
。它是INI格式的
basemodulepath
的值<根据文档,配置文件中的code>modulepath未在目录环境中使用

有关
environment.conf
的更多信息:
有关在目录环境中附加模块路径的详细信息:

假设您想列出已安装在modulepath中的模块,并希望写入:

puppet module list
而不是:

木偶模块列表--模块路径=C:\tmp\modules

然后可以通过如下方式设置basemodulepath来设置modulepath:

木偶配置集basemodulepath“C:\tmp\modules”

这将在puppetlabs中创建一个文件puppet.conf;在windows下,它可能位于以下位置:

C:\Users\\.puppetlabs\etc\puppet

然后,您可以像下面这样列出已安装的模块:

木偶模块列表


如果您使用modulepath而不是basemodulepath,则puppet会在每次导致错误时尝试设置modulepath

,因为这两个额外的modulepath特定于您的
生产
目录环境,请尝试将它们附加到
basemodulepath
(来自
puppet.conf
)在您的
环境中.conf
用于
生产
:。谢谢。在environment.conf中设置modulepath似乎有效。奇怪的是,
puppet-config-set-modulepath…
没有更新environment.conf。要我写下来作为答案吗?这取决于您。我会投票并接受它。