5

I posted this question on the networkengineering SE site, but it was determined to be off topic.... blah.

I'm toying with the idea of using puppet for core network device configuration to increase accuracy of the configs my team is generating. I wanted to start by setting up a demo and learning more about how puppet works in general.

I installed puppet on our teams networking utility node (an Ubuntu 12.04 LTS VM) and configured a single device in my ~user/.puppet/device.conf which looks something like....

[XX-core01.XXX.local]
        type cisco
        url ssh://user:reallygoodpassword@XX-core01.XXX.local/

I ran puppet device --verbose, and issued a cert. But once I did, I got an error that I'm unable to find any information about.

info: starting applying configuration to XX-core01.XXX.local at ssh://user:reallygoodpassword@XX-core01.XXX.local/
info: Creating a new SSL key for XX-core01.XXX.local
info: Caching certificate for ca
info: Creating a new SSL certificate request for XX-core01.XXX.local
info: Certificate Request fingerprint (md5): 18:B8:55:F9:A0:F6:8E:A3:F5:53:59:87:4C:00:48:23
info: Caching certificate for XX-core01.XXX.local
info: Caching certificate_revocation_list for ca
err: Could not retrieve local facts: undefined method `captures' for nil:NilClass

Can anyone point me in the right direction? Also, is it possible using puppet to "walk" the device? I'd be interested in seeing what options are available to configure on my different devices.

Thanks!

1 Answers1

0

It looks like that is facter failing while reporting facts to puppet. What probably happens is that a facter plugin fails to retrieve an object, but still works with the result (which is nil) and tries to call the captures method.

Try to run facter --trace --debug --puppet (which runs facter with puppet plugins enabled) and see if that fails, too.

If it does narrow it down with a plain call to facter --trace --debug which will fail if it is a basic facter plugin, but work if it was a puppet plugin.

After that you know where to look. The puppet-related facter stuff is probably in /var/lib/puppet/lib/facter/ while the core stuff is in /usr/share/ruby/vendor_ruby/facter/. Make sure you also have a look at /etc/facts.d/ and maybe ~/facts.d/.

You will then need to find out which fact creates the issue and fix it (but maybe we can help once we're at this point).

Andreas Rogge
  • 2,853
  • 11
  • 24