【问题标题】:Error: Could not initialize global default settings: Cannot set modulepath settings in puppet.conf错误:无法初始化全局默认设置:无法在 puppet.conf 中设置模块路径设置
【发布时间】:2017-08-24 18:26:20
【问题描述】:

我无法在我的 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/code/environments/production/modules/tools
  • /etc/puppetlabs/code/environments/production/modules/core

... 到我的模块路径。所以我这样做:

# 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

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

【问题讨论】:

  • 由于这两个附加模块路径特定于您的 production 目录环境,请尝试将它们附加到您的 basemodulepath(来自 puppet.conf)中的 environment.conf production:@987654321 @.
  • 谢谢。在 environment.conf 中设置模块路径似乎有效。奇怪的是puppet config set modulepath ... 没有更新 environment.conf。
  • 要我写下来作为答案吗?
  • 这取决于你。我会投票并接受它。

标签: puppet


【解决方案1】:

这些额外的模块路径特定于您的生产目录环境,因此可以将它们附加到您的生产目录环境的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 的值。根据文档,配置文件中的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

【讨论】:

    【解决方案2】:

    假设你想列出你在你的模块路径中安装的模块并想写:

    puppet module list
    

    而不是:

    puppet 模块列表 --modulepath=C:\tmp\modules

    然后你可以通过像这样设置 basemodulepath 来设置模块路径:

    puppet 配置设置 basemodulepath "C:\tmp\modules"

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

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

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

    傀儡模块列表

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多