puppet не может найти пункт: провайдер параметра не выполнен: недопустимый поставщик пакета 'pip' в <path_to_pip_file> - PullRequest
4 голосов
/ 29 марта 2012

У меня есть простой файл .pp / puppet, и я получаю сообщение «Поставщик параметра не выполнен: недопустимый поставщик пакета« pip »в sis.pp: 24»

Вот строка 24:

 20 package {"numpy":
 21                 ensure => installed,
 22                 provider => pip,
 23                 require => Package["python-setuptools", "python-pip", "python-dev", "build-essential"]
 24         }

Я проверил синтаксические ошибки, их нет.

Я предполагаю, что марионетка не может найти пункт, я удалил и снова установил пункт. С apt-get, вот что я получаю, когда набираю "whereis pip"

pip: /usr/local/bin/pip /usr/share/man/man1/pip.1.gz

Я обыскал и обнаружил, что у puppet есть модуль pip, тоже установил его.

Но все еще не понимает, в чем проблема.

Когда я набираю "puppet apply sis.pp --debug --verbose"

Я получаю это:

debug: Puppet::Type::Package::ProviderSunfreeware: file pkg-get does not exist
debug: Puppet::Type::Package::ProviderFink: file /sw/bin/fink does not exist
debug: Puppet::Type::Package::ProviderYum: file yum does not exist
debug: Puppet::Type::Package::ProviderRug: file /usr/bin/rug does not exist
debug: Puppet::Type::Package::ProviderAix: file /usr/bin/lslpp does not exist
debug: Puppet::Type::Package::ProviderPorts: file /usr/sbin/pkg_info does not exist
debug: Puppet::Type::Package::ProviderNim: file /usr/sbin/nimclient does not exist
debug: Puppet::Type::Package::ProviderRpm: file rpm does not exist
debug: Puppet::Type::Package::ProviderSun: file /usr/sbin/pkgrm does not exist
debug: Puppet::Type::Package::ProviderPortupgrade: file /usr/sbin/pkg_info does not exist
debug: Puppet::Type::Package::ProviderHpux: file /usr/sbin/swremove does not exist
debug: Puppet::Type::Package::ProviderZypper: file /usr/bin/zypper does not exist
debug: Puppet::Type::Package::ProviderFreebsd: file /usr/sbin/pkg_delete does not exist
debug: Puppet::Type::Package::ProviderUp2date: file /usr/sbin/up2date-nox does not exist
debug: Puppet::Type::Package::ProviderPkg: file /usr/bin/pkg does not exist
debug: Puppet::Type::Package::ProviderPortage: file /usr/bin/eix does not exist
debug: Puppet::Type::Package::ProviderAptrpm: file rpm does not exist
debug: Puppet::Type::Package::ProviderOpenbsd: file pkg_delete does not exist
debug: Puppet::Type::Package::ProviderUrpmi: file urpmq does not exist
Parameter provider failed: Invalid package provider 'pip' at /path/sis.pp:54

Обратите внимание, что интерпретатор puppet указывает на несколько мест в файле sis.pp, где он не может обработать провайдера => "pip"

нужна помощь. Теперь я попытаюсь найти строки кода вывода терминала в исходном коде, чтобы увидеть, в чем проблема. Если кто-то уже знает решение, помощь будет принята.

Я на Ubuntu.

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Похоже, что ваша установка не может найти провайдера pip, а не может найти исполняемый файл pip.

Я предполагаю, что провайдер, которого вы упомянули, это:

https://github.com/rcrowley/puppet-pip

Пара вещей, которые могут быть неясны:

  1. Плагин должен быть доступен на клиентах марионеток
  2. Просто установка Gem выиграла 'сделать это для вас, следовательно, ручная настройка env в README

Вероятно, самый простой подход - включить поставщика puppet-pip в репозиторий Puppet в качестве отдельного модуля, а затем включить pluginsync

[main]
pluginsync = true

Подробнее здесь http://docs.puppetlabs.com/guides/plugins_in_modules.html

1 голос
/ 31 марта 2012

Похоже, что pip провайдер недоступен в Puppet pre 2.7 без загрузки внешнего провайдера. Вы используете 2.7 или выше?

...