Error: Could not initialize global default settings: Cannot set modulepath settings in puppet.conf
Error: Could not initialize global default settings: Cannot set modulepath settings in puppet.conf
我在设置 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
我做错了什么或者这是一个错误?
这些额外的模块路径特定于您的生产目录环境,因此可以将它们附加到您的生产目录环境的 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
假设您想列出已安装在模块路径中的模块,并希望写入:
puppet module list
而不是:
puppet module list --modulepath=C:\tmp\modules
然后你可以通过像这样设置基本模块路径来设置模块路径:
puppet config set basemodulepath "C:\tmp\modules"
这会在 puppetlabs 中创建一个文件 puppet.conf;在 windows 下它可能在这里:
C:\Users\< username >\.puppetlabs\etc\puppet
之后您将能够像这样列出已安装的模块:
puppet module list
如果你使用 modulepath 而不是 basemodulepath 那么 puppet 每次都会尝试设置 modulepath 导致你的错误
我在设置 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
我做错了什么或者这是一个错误?
这些额外的模块路径特定于您的生产目录环境,因此可以将它们附加到您的生产目录环境的 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
假设您想列出已安装在模块路径中的模块,并希望写入:
puppet module list
而不是:
puppet module list --modulepath=C:\tmp\modules
然后你可以通过像这样设置基本模块路径来设置模块路径:
puppet config set basemodulepath "C:\tmp\modules"
这会在 puppetlabs 中创建一个文件 puppet.conf;在 windows 下它可能在这里:
C:\Users\< username >\.puppetlabs\etc\puppet
之后您将能够像这样列出已安装的模块:
puppet module list
如果你使用 modulepath 而不是 basemodulepath 那么 puppet 每次都会尝试设置 modulepath 导致你的错误