I met the same problem on rhel5.4 On 2月23日, 上午7时19分, Kyle Anderson <k...@xkyle.com> wrote: > I see. I'm running facter 1.5.9 on both Ubuntu 11.10 hosts, stock packages. > > If I do force it to use apt as the provider I still get an error, but > it exposes something else: > > # puppet apply -e 'package { openssh-server: ensure => latest, > provider => apt; }' > warning: Found multiple default providers for package: dpkg, pip; using dpkg > err: /Stage[main]//Package[openssh-server]: Could not evaluate: > Provider apt is not functional on this host at line 1 > notice: Finished catalog run in 0.34 seconds > Debug:http://pastebin.com/ra05pSsw > > Which says that my /usr/bin/debconf-set-selections does not exist, > except that it does, and it is some sort of cpython header file? I > don't know how the heck that got there... so I ran: > apt-get install --reinstall debconf > > And it works! So thank you for leading me in the right direction and > explaining how the provider interacts with facter. As far as why my > debconf package was borked... man I don't know :( Thank you again. > > > > > > > > On Wed, Feb 22, 2012 at 9:58 AM, jcbollinger <john.bollin...@stjude.org> > wrote: > > > On Feb 21, 7:52 pm, Kyle Anderson <k...@xkyle.com> wrote: > >> Can someone help me understand how why this is happening? I have two > >> Ubuntu laptops that are pretty much the same. Neither of them have pip > >> installed, but even if I do install pip, it doesn't seem to make a > >> difference. > > >> I've boiled down my manifests to try to reduce the problem, and this > >> is how it manifests: > > >> root@cody-laptop:/# puppet apply -e 'package { openssh-server: ensure > >> => latest; }' > >> warning: Found multiple default providers for package: dpkg, pip; > >> using dpkg > >> err: /Stage[main]//Package[openssh-server]: Could not evaluate: Could > >> not get latest version: Execution of '/usr/bin/dpkg-deb --show ' > >> returned 2: dpkg-deb: error: failed to read archive `': No such file > >> or directory > >> notice: Finished catalog run in 0.39 seconds > >> Debug output:http://pastebin.com/uw6E6pSV > >> Facter output:http://pastebin.com/MJTBGCRQ > > >> Other laptop works fine: > >> root@kyle:~# puppet apply -e 'package { openssh-server: ensure => > >> latest; }' > >> notice: Finished catalog run in 0.32 seconds > >> Debug output:http://pastebin.com/vAZffw3n > >> Facter output:http://pastebin.com/7kFHy6j0 > > >> I've done --debug stuff, and I can kinda see it testing for the > >> existence of other package managers, but not for pip. > > >> But it looks like it is trying to use dpkg-deb, but something goes > >> wrong. > > >> What I would like to know is why it fails on the one laptop, but not > >> the other. What I really want to know is how I can better troubleshoot > >> this myself :) It is really stumping me. Let me know if I can provide > >> more information to help diagnose it. > > >> It as if puppet on the broken one is actually trying to use dpkg > >> instead of apt, but in a wrong way, and the pip thing is a red- > >> herring? > > > When the Puppet agent runs, it examines its operating environment to > > choose the appropriate local tools to use to perform various > > operations. For example, it determines which package manager to use. > > Puppet's interface to a local tool (set) is called a "provider", and > > most resource types have several different providers available. > > > If Puppet cannot narrow the provider list to a single most appropriate > > element then it chooses one of the possibilities and issues a warning > > such as you reported. This is not a problem as long as Puppet has > > chosen the right provider. Since you don't even have pip installed, > > it should not be a problem that Puppet is choosing dpkg over pip. > > > As I understand it, however, the appropriate Package provider for > > Ubuntu would be apt. The fact that Puppet is trying to use dpkg-deb > > instead is probably the key characteristic your problem. You can > > override the default Package provider via the 'provider' > > metaparameter, like so: > > > puppet apply -e 'package { openssh-server: ensure => latest, provider > > => apt; }' > > > In a set of manifest files, you can avoid having to set the provider > > on every Package resource by means of a resource default: > > > site.pp > > ====== > > # ... > > > if $::operatingsystem == 'Ubuntu' { > > Package { provider => 'apt' } > > } > > > # ... > > ====== > > > You should also ensure that your nodes have a recent Facter ( >= > > 1.6.0 ), as earlier versions were inconsistent about distinguishing > > Ubuntu from Debian. That by itself might even solve your problem, and > > differing versions of Facter might explain why only one of your > > systems is affected. > > > John > > > -- > > You received this message because you are subscribed to the Google Groups > > "Puppet Users" group. > > To post to this group, send email to puppet-users@googlegroups.com. > > To unsubscribe from this group, send email to > > puppet-users+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/puppet-users?hl=en.
-- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.