错误:无法初始化全局默认设置:无法在puppet.conf中设置模块路径设置

时间:2017-08-24 18:26:21

标签: puppet

我在puppet master上设置模块路径时遇到问题。

# puppet -V
4.10.5

这是默认的模块路径

# puppet config print modulepath
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules

我必须添加两个目录......

  • 的/ etc / puppetlabs /代码/环境/生产/模块/工具
  • 的/ etc / puppetlabs /代码/环境/生产/模块/芯

...到我的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

我的puppet.conf中的模块路径看起来没问题:

# 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

我做错了什么或这是一个错误?

2 个答案:

答案 0 :(得分:3)

这些额外的模块路径是特定于您的生产目录环境的,因此可以将它们附加到您的生产目录环境environment.conf中(例如,SO不允许我将其格式化):

# /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的值。根据文档,配置文件中的modulepath未在目录环境中使用。

有关environment.conf的更多信息:https://docs.puppet.com/puppet/4.10/config_file_environment.html 有关在目录环境中附加模块路径的更多信息:https://docs.puppet.com/puppet/4.10/config_file_environment.html#modulepath

答案 1 :(得分:0)

假设您要列出已在模块路径中安装的模块,并希望编写:

puppet module list

而不是:

  

puppet module list --modulepath = C:\ tmp \ modules

然后您可以通过设置basemodulepath来设置模块路径,如下所示:

  

puppet config set basemodulepath" C:\ tmp \ modules"

这会在puppetlabs中创建一个文件 puppet.conf ;在Windows下它可能在这里:

  

C:\用户\<用户名> \。puppetlabs \ etc \ puppet

然后您可以列出已安装的模块,如下所示:

  

木偶模块列表

如果您使用modulepath而不是basemodulepath,那么puppet将尝试每次都设置modulepath导致您的错误