Problem:
On Tuesday, I upgraded from Foreman 2.3 → 2.4 → 2.5.4.
Today, I noticed that no reports are showing up in Foreman. Puppet agents are communicating with the Puppet Server just fine, and we are able to make configuration changes, etc.
Long story short, the cause seems to be this from production.log
:
2021-11-04 13:04:31,482 ERROR [qtp161156004-20] [puppetserver] Puppet Report processor failed: Could not send report to Foreman at https://foreman.example.org/api/config_reports: Received fatal alert: handshake_failure
I’m sure this is a TLS failure, but everything seems to look okay to me. How can I troubleshoot & verify that TLS is working between Puppet and Foreman? Is there a Foreman guide for troubleshooting TLS errors?
Expected outcome:
I expect the report processor to return success in the log files.
Foreman and Proxy versions:
2.5.4
Proxies:
- BMC
- DHCP
- Discovery
- HTTPBoot
- Logs
- Puppet
- Puppet CA
- Registration
- TFTP
Foreman and Proxy plugin versions:
2.5.4
Distribution and version:
Ubuntu 18.04.6
Other relevant data:
root@foreman:/var/log/puppetlabs/puppetserver# tail -1000f puppetserver.log |grep ERROR
...
2021-11-04 13:04:31,482 ERROR [qtp161156004-20] [puppetserver] Puppet Report processor failed: Could not send report to Foreman at https://foreman.example.org/api/config_reports: Received fatal alert: handshake_failure
["org/jruby/ext/openssl/SSLSocket.java:217:in `connect'", "/opt/puppetlabs/server/apps/puppetserver/jruby-1_7.jar!/META-INF/jruby.home/lib/ruby/1.9/net/http.rb:800:in `connect'", "org/jruby/ext/timeout/Timeout.java:115:in `timeout'", "/opt/puppetlabs/server/apps/puppetserver/jruby1_7.jar!/METAINF/jruby.home/lib/ruby/1.9/net/http.rb:800:in `connect'", "/opt/puppetlabs/server/apps/puppetserver/jruby-1_7.jar!/META-INF/jruby.home/lib/ruby/1.9/net/http.rb:756:in `do_start'", "/opt/puppetlabs/server/apps/puppetserver/jruby-1_7.jar!/META-INF/jruby.home/lib/ruby/1.9/net/http.rb:745:in `start'", "/opt/puppetlabs/server/apps/puppetserver/jruby-1_7.jar!/META-INF/jruby.home/lib/ruby/1.9/net/http.rb:1293:in `request'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/reports/foreman.rb:69:in `process'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/report/processor.rb:37:in `process'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/report/processor.rb:53:in `processors'", "org/jruby/RubyArray.java:1613:in `each'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/report/processor.rb:51:in `processors'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/report/processor.rb:30:in `process'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/report/processor.rb:14:in `sa
ve'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:289:in `save'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/ indirected_routes.rb:192:in `do_save'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:48:in `call'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:65:in `override'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:263:in `override'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:47:in `call'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb:82:in `process'", "org/jru
by/RubyArray.java:1613:in `each'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb:81:in `process'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb:87:in `process'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb:87:in `process'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb:64:in `process'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'",
"/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'", "/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb:62:in `process'", "file:/opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar!/puppetserver-lib/puppet/server/master.rb:42:in `handleRequest'", "Puppet$$Server$$Master_659347371.gen:13:in `handleRequest'", "request_handler_core.clj:273:in `invoke'", "jruby_request.clj:49:in `invoke'", "jruby_request.clj:34:in `invoke'", "request_handler_service.clj:47:in `handle_request'", "request_handler.clj:3:in `invoke'", "request_handler.clj:3:in `invoke'", "core.clj:2515:in `invoke'", "ring_middleware.clj:290:in `invoke'", "core.clj:170:in `invoke'", "core.clj:216:in `invoke'", "core.clj:47:in `invoke'", "core.clj:357:in `invoke'", "core.clj:53:in `invoke'", "ringutils.clj:83:in `invoke'", "master_core.clj:742:in `invoke'", "ring.cljc:25:in `invoke'", "ring.cljc:16:in `invoke'", "comidi.clj:245:in `invoke'", "http.clj:152:in `invoke'",
"http.clj:152:in `invoke'", "http.clj:148:in `invoke'", "comidi.clj:332:in `invoke'", "jetty9_core.clj:434:in `invoke'", "normalized_uri_helpers.clj:74:in `invoke'"]
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/reports/foreman.rb:75:in `process'