Назад | Перейти на главную страницу

Ошибка при применении пути к модулю марионетки?

Вот отрывок из моего /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",

как предложил Шейн.