2017-08-24 83 views
1

我在設置我的木偶主模塊路徑時遇到問題。錯誤:無法初始化全局默認設置:無法在puppet.conf中設置模塊路徑設置

# 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 /代碼/環境/生產/模塊/工具
  • /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的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 

我做錯了什麼或者是這是一個錯誤?

+1

因爲這兩個額外的modulepath是特定於你的'production'目錄環境的,所以試着將它們追加到'environment.conf'裏的'basemodulepath'(來自puppet.conf')'production':https ://docs.puppet.com/puppet/4.10/config_file_environment.h TML。 –

+0

謝謝。在environment.conf中設置modulepath似乎工作。奇怪的是'puppet config set modulepath ...'不會更新environment.conf。 –

+0

要我把它寫成答案? –

回答

3

這些額外的模塊路徑是特定於生產目錄的環境,使他們能夠在附加的生產目錄環境的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.confhttps://docs.puppet.com/puppet/4.10/config_file_environment.html 有關目錄的環境附加模塊路徑的更多信息:https://docs.puppet.com/puppet/4.10/config_file_environment.html#modulepath

0

可以說你要列出你已經安裝在你的ModulePath進行模塊,並希望寫:

而不是
puppet module list 

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

那麼你可以通過設置basemodulepath這樣設置ModulePath進行:

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

這將創建一個文件傀儡。conf裏面puppetlabs;在Windows下也可能是在這裏:

C:\Users\< username >\.puppetlabs\etc\puppet

你會再後來比布爾列出你安裝的模塊是這樣的:

puppet module list

如果使用ModulePath進行再不行basemodulepath傀儡會嘗試設置ModulePath進行每次造成你的錯誤