4

我有一个简单的 .pp / puppet 文件,并且我收到“参数提供程序失败:在 sis.pp:24 的包提供程序 'pip' 无效”

这是第 24 行:

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

我检查了语法错误,没有。

我的猜测是 puppet 找不到 pip,我卸载并重新安装了 pip。使用 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 文件中无法处理 provider => "pip" 的多个位置

需要帮忙。我现在将尝试在 puppet 源代码中查找终端输出代码行,以查看问题所在。如果有人已经知道解决方案,我们将不胜感激。

我在ubuntu上。

4

2 回答 2

1

如果不下载外部提供程序,pip 提供程序似乎在 puppet pre 2.7 中不可用。您使用的是 2.7 或更高版本吗?

于 2012-03-31T02:43:28.940 回答
1

您的安装似乎找不到 pip 提供程序,而不是找不到 pip 可执行文件。

我猜你提到的提供者是这个:

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

有几点可能不清楚:

  1. 该插件需要在 puppet 客户端上可用
  2. 仅安装 Gem 不会为您完成,因此 README 中的手动 env 设置

可能最简单的方法是将 puppet-pip 提供程序作为单独的模块包含在您的 puppet 存储库中,然后启用 pluginsync,即

[main]
pluginsync = true

更多细节在这里http://docs.puppetlabs.com/guides/plugins_in_modules.html

于 2012-03-31T15:22:46.277 回答