PuppetDB module errors and frustrations...

592 views
Skip to first unread message

Stack Kororā

unread,
Aug 10, 2015, 4:01:04 PM8/10/15
to Puppet Users
Greetings,

I am really stuggling here and would love another set of eyes. After a failed attempt to migrate to Puppet 4 (my crappy modules need more work then I have time for), I went back to Puppet 3. Only this time, I have the chance to improve upon where things went wonky last time.

The plan I want:
Puppetmaster01 runs Apache Passengermod as the puppetmaster.
Puppetmaster02 runs puppetdb and postgreSQL.

That shouldn't be hard right? Except I can _not_ get puppetdb to work. I have gone through countless guides and documentation and it just flat out fails.

Fine. I give up doing it on my own. I will use puppetlabs puppetdb module. After many hours of the same failures as before, I decided to simplify things.

Everything on puppetmaster01 with no apache, puppetmaster, no postgreSQL, and puppetdb.

Fresh install!

I configure EL6 to pull RPM packages from puppetlabs.

 $ yum install puppet-server
 $ cat /etc/puppet/puppet.conf
 [main]
    logdir = /var/log/puppet
    rundir = /var/run/puppet
    ssldir = $vardir/ssl
    server = puppetmaster01.domain.org
[agent]
    classfile = $vardir/classes.txt
    localconfig = $vardir/localconfig
$ cat /etc/puppet/manifests/site.pp
node 'puppetmaster01.domain.org' { }
$ puppet agent -t
Horray! It works! Now to configure puppetdb!

$ puppet module install puppetlabs-puppetdb
Notice: Preparing to install into /etc/puppet/modules ...
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/etc/puppet/modules
└─┬ puppetlabs-puppetdb (v5.0.0)
  ├── puppetlabs-firewall (v1.7.0)
  ├── puppetlabs-inifile (v1.4.1)
  ├─┬ puppetlabs-postgresql (v4.5.0)
  │ ├── puppetlabs-apt (v2.1.1)
  │ └── puppetlabs-concat (v1.2.4)
  └── puppetlabs-stdlib (v4.7.0)

Now to configure the host! The documentation says:
"
node puppetmaster {
  # Configure puppetdb and its underlying database
  class { 'puppetdb': }
  # Configure the puppet master to use puppetdb
  class { 'puppetdb::master::config': }
}
You can provide some parameters for these classes if you’d like more control, but that is literally all that it will take to get you up and running with the default configuration."

That is obviously false to anyone that attempts it. Full of errors.

Here is my site.pp

$ cat /etc/puppet/manifests/site.pp
node 'puppetmaster01.domain.org' {
  class { 'puppetdb':
    # Force embedded for simplicity.
    database => 'embedded',
    # Puppetlabs RPMs install to different location then the puppetdb module wants them in.
    confdir=>'/etc/puppetdb/conf.d',
  }
  class { 'puppetdb::master::config':
    # Once again, puppetlabs names their package one way but their module looks for something different.
    terminus_package=>'puppetdb-terminus',
  }
}

Now to run again. Snipping out the
$ puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for puppetmaster01.domain.org
Info: Applying configuration version '1439233620'

[Snip: cutting the loading of the new facts]

Notice: /Stage[main]/Puppetdb::Master::Config/Package[puppetdb-terminus]/ensure: created
Notice: Unable to connect to puppetdb server (https://puppetmaster01.domain.org:8081): [404] Not Found
Notice: Failed to connect to puppetdb; sleeping 2 seconds before retry

[Snip previous two comments another 55 times]

Notice: Failed to connect to puppetdb within timeout window of 120 seconds; giving up.
Error: Unable to connect to puppetdb server! (puppetmaster01.domain.org:8081)
Error: /Stage[main]/Puppetdb::Master::Config/Puppetdb_conn_validator[puppetdb_conn]/ensure: change from absent to present failed: Unable to connect to puppetdb server! (puppetmaster01.domain.org:8081)
Notice: /Stage[main]/Puppetdb::Master::Storeconfigs/Ini_setting[puppet.conf/master/storeconfigs]: Dependency Puppetdb_conn_validator[puppetdb_conn] has failures: true
Warning: /Stage[main]/Puppetdb::Master::Storeconfigs/Ini_setting[puppet.conf/master/storeconfigs]: Skipping because of failed dependencies
Notice: /Stage[main]/Puppetdb::Master::Storeconfigs/Ini_setting[puppet.conf/master/storeconfigs_backend]: Dependency Puppetdb_conn_validator[puppetdb_conn] has failures: true
Warning: /Stage[main]/Puppetdb::Master::Storeconfigs/Ini_setting[puppet.conf/master/storeconfigs_backend]: Skipping because of failed dependencies
Notice: /Stage[main]/Puppetdb::Master::Routes/File[/etc/puppet/routes.yaml]: Dependency Puppetdb_conn_validator[puppetdb_conn] has failures: true
Warning: /Stage[main]/Puppetdb::Master::Routes/File[/etc/puppet/routes.yaml]: Skipping because of failed dependencies
Notice: /Stage[main]/Puppetdb::Master::Puppetdb_conf/Ini_setting[puppetdbserver_urls]: Dependency Puppetdb_conn_validator[puppetdb_conn] has failures: true
Warning: /Stage[main]/Puppetdb::Master::Puppetdb_conf/Ini_setting[puppetdbserver_urls]: Skipping because of failed dependencies
Notice: /Stage[main]/Puppetdb::Master::Puppetdb_conf/Ini_setting[soft_write_failure]: Dependency Puppetdb_conn_validator[puppetdb_conn] has failures: true
Warning: /Stage[main]/Puppetdb::Master::Puppetdb_conf/Ini_setting[soft_write_failure]: Skipping because of failed dependencies
Notice: /Stage[main]/Puppetdb::Master::Config/Service[puppetserver]: Dependency Puppetdb_conn_validator[puppetdb_conn] has failures: true
Warning: /Stage[main]/Puppetdb::Master::Config/Service[puppetserver]: Skipping because of failed dependencies
Notice: Finished catalog run in 124.99 seconds


Grrrrrr...

$ rpm -qa | grep -i puppet
puppetdb-2.3.6-1.el6.noarch
puppet-3.8.2-1.el6.noarch
puppetdb-terminus-2.3.6-1.el6.noarch
puppet-server-3.8.2-1.el6.noarch

I have even disabled the firewall and selinux. I can connect with telnet to the host on 8081. Things are listening (I can see them with netstat), but not connecting.

What gives? I would think that using the puppetlabs provided rpms with the puppetlabs provided module following the puppetlabs documentation on a single host that this would be straight forward. Where am I going wrong??

Please help. ;-)
Thanks!

Christopher Wood

unread,
Aug 10, 2015, 4:23:46 PM8/10/15
to puppet...@googlegroups.com
I haven't set up puppetdb with the puppetlabs-puppetdb forge module in over 18 months, but depending on your module version you may need to tweak parameters. Quoth:

"The PuppetDB module now supports PuppetDB 3.0.0 by default... If you want to use 5.x of the module with PuppetDB 2.x, you'll need to use the new puppetdb::globals class to set the version of PuppetDB you're using explicitly."

https://forge.puppetlabs.com/puppetlabs/puppetdb

(Scroll down.)
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [1]puppet-users...@googlegroups.com.
> To view this discussion on the web visit
> [2]https://groups.google.com/d/msgid/puppet-users/1952f586-1e63-4758-a219-76cba288e02a%40googlegroups.com.
> For more options, visit [3]https://groups.google.com/d/optout.
>
> References
>
> Visible links
> 1. mailto:puppet-users...@googlegroups.com
> 2. https://groups.google.com/d/msgid/puppet-users/1952f586-1e63-4758-a219-76cba288e02a%40googlegroups.com?utm_medium=email&utm_source=footer
> 3. https://groups.google.com/d/optout

Stack Kororā

unread,
Aug 10, 2015, 6:19:05 PM8/10/15
to Puppet Users, christop...@pobox.com
On Monday, August 10, 2015 at 3:23:46 PM UTC-5, Christopher Wood wrote:
I haven't set up puppetdb with the puppetlabs-puppetdb forge module in over 18 months, but depending on your module version you may need to tweak parameters. Quoth:

"The PuppetDB module now supports PuppetDB 3.0.0 by default... If you want to use 5.x of the module with PuppetDB 2.x, you'll need to use the new puppetdb::globals class to set the version of PuppetDB you're using explicitly."

https://forge.puppetlabs.com/puppetlabs/puppetdb

Greetings,

AH HA!!! THANK YOU!!!

I knew it was something simple. I had that when I was trying to get the puppetdb working across multiple systems, but when I got annoyed and decided to "simplify the process by wipping the server for a fresh install and building on one host only, I completly forgot to add that parameter back in. Doh!

Thank you so much!!
Now that i have it working on one server, time to try getting it working on multiple servers. :-)


Stack Kororā

unread,
Aug 10, 2015, 8:04:45 PM8/10/15
to Puppet Users, christop...@pobox.com
Now that I have a working example to figure out what puppetdb is doing, I was able to figure out the other issues with ssl and connections.

Thanks again!!
Reply all
Reply to author
Forward
0 new messages