Вот отрывок из моего /etc/puppet/puppet.conf
[main]
modulepath = /etc/puppet
Когда я пытаюсь использовать этот путь в init.pp
файл я получаю сообщение об ошибке
etc/puppet/modules/fangs/manifests# puppet apply init.pp
err: /Stage[main]//File[/tmp/test]: Could not evaluate: Could not retrieve information
from environment production source(s) puppet:///modules/fangs/files/sample.txt at /etc/puppet/modules/fangs/manifests/init.pp:7
notice: Finished catalog run in 0.05 seconds
Вот содержание моего init.pp
файл
file { '/tmp/test':
ensure => file,
mode => '0777',
source => "puppet:///modules/fangs/files/sample.txt",
# source => "/etc/puppet/modules/fangs/files/sample.txt",
}
Он работает правильно, когда я использую прокомментированный источник source => "/etc/puppet/modules/fangs/files/sample.txt",
с полным путем к файлу вместо puppet://
путь к модулю.
Как я могу исправить свой путь к модулю, чтобы убедиться, что он работает правильно?
При использовании puppet://
путь, подразумевается "файлы".
Вместо этого попробуйте:
source => "puppet:///modules/fangs/sample.txt",
Если вы не хотите настраивать макет своего modules
папка, устанавливать modulepath
в /etc/puppet.conf
. Если оставить его в покое, наиболее распространенными значениями по умолчанию являются /etc/puppet/modules:/usr/share/puppet/modules
(в версии с открытым исходным кодом) или /etc/puppetlabs/puppet/modules:/opt/puppet/share/puppet/modules
(в Puppet Enterprise). Если это не ваш случай, установите:
modulepath=/etc/puppet/modules
Информация Шейна Мэддена верна, но она не будет работать с вашим текущим modulepath
настройки, потому что марионетка будет искать ваши модули прямо под /etc/puppet
. Если вы не хотите их туда помещать (чего вы, вероятно, не делаете), вам нужно исправить modulepath
и используйте:
source => "puppet:///modules/fangs/sample.txt",
как предложил Шейн.