我在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
我必须添加两个目录......
...到我的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
我做错了什么或这是一个错误?
答案 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导致您的错误