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.orgInfo: 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!