Bug #20195
openPuppet class "profile::puppet" leads to errors when using ignored_environments
Description
Stacktrace:
2017-07-03 20:38:18 5f506e9e [app] [W] Action failed | RuntimeError: can't modify frozen String | /usr/share/foreman/app/controllers/concerns/foreman/controller/environments.rb:59:in `list_ignored' | /usr/share/foreman/app/controllers/concerns/foreman/controller/environments.rb:32:in `import_environments' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal/implicit_render.rb:4:in `send_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/abstract_controller/base.rb:198:in `process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal/rendering.rb:10:in `process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/abstract_controller/callbacks.rb:20:in `block in process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:117:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:117:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:313:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting' | /usr/share/foreman/app/controllers/concerns/application_shared.rb:15:in `set_timezone' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:432:in `block in make_lambda' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:312:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:312:in `block in halting' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `block in around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:313:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting' | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:432:in `block in make_lambda' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:312:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:312:in `block in halting' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `block in around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:313:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting' | /usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:432:in `block in make_lambda' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:312:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:312:in `block in halting' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `block in around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:313:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting' | /opt/theforeman/tfm/root/usr/share/gems/gems/audited-4.4.1/lib/audited/sweeper.rb:14:in `around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:455:in `public_send' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:455:in `block in make_lambda' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:312:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:312:in `block in halting' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `block in around' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:92:in `__run_callbacks__' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:81:in `run_callbacks' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/abstract_controller/callbacks.rb:19:in `process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal/rescue.rb:29:in `process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/notifications.rb:164:in `block in instrument' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/notifications.rb:164:in `instrument' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal/instrumentation.rb:30:in `process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal/params_wrapper.rb:250:in `process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activerecord-4.2.5.1/lib/active_record/railties/controller_runtime.rb:18:in `process_action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/abstract_controller/base.rb:137:in `process' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionview-4.2.5.1/lib/action_view/rendering.rb:30:in `process' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal.rb:196:in `dispatch' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_controller/metal.rb:237:in `block in action' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/routing/route_set.rb:74:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/routing/route_set.rb:74:in `dispatch' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/routing/route_set.rb:43:in `serve' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/journey/router.rb:43:in `block in serve' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/journey/router.rb:30:in `each' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/journey/router.rb:30:in `serve' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/routing/route_set.rb:815:in `call' | /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.4.0/lib/apipie/static_dispatcher.rb:65:in `call' | /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.4.0/lib/apipie/extractor/recorder.rb:132:in `call' | /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.4.0/lib/apipie/middleware/checksum_in_headers.rb:27:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/etag.rb:24:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/conditionalget.rb:25:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/head.rb:13:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/params_parser.rb:27:in `call' | /usr/share/foreman/lib/middleware/catch_json_parse_errors.rb:8:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/flash.rb:260:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/session/abstract/id.rb:225:in `context' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/session/abstract/id.rb:220:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/cookies.rb:560:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activerecord-4.2.5.1/lib/active_record/query_cache.rb:36:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activerecord-4.2.5.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:88:in `__run_callbacks__' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:778:in `_run_call_callbacks' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:81:in `run_callbacks' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/callbacks.rb:27:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/remote_ip.rb:78:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/railties-4.2.5.1/lib/rails/rack/logger.rb:38:in `call_app' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/railties-4.2.5.1/lib/rails/rack/logger.rb:22:in `call' | /usr/share/foreman/lib/middleware/tagged_logging.rb:18:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/request_id.rb:21:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/methodoverride.rb:22:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/runtime.rb:18:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/activesupport-4.2.5.1/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/actionpack-4.2.5.1/lib/action_dispatch/middleware/static.rb:116:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/sendfile.rb:113:in `call' | /opt/theforeman/tfm/root/usr/share/gems/gems/secure_headers-3.4.1/lib/secure_headers/middleware.rb:12:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/railties-4.2.5.1/lib/rails/engine.rb:518:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/railties-4.2.5.1/lib/rails/application.rb:165:in `call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/railties-4.2.5.1/lib/rails/railtie.rb:194:in `public_send' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/railties-4.2.5.1/lib/rails/railtie.rb:194:in `method_missing' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/urlmap.rb:66:in `block in call' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/urlmap.rb:50:in `each' | /opt/rh/sclo-ror42/root/usr/share/gems/gems/rack-1.6.2/lib/rack/urlmap.rb:50:in `call' | /usr/share/passenger/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request' | /usr/share/passenger/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request' | /usr/share/passenger/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop' | /usr/share/passenger/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads' | /opt/theforeman/tfm/root/usr/share/gems/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call' | /opt/theforeman/tfm/root/usr/share/gems/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
References #15096
Updated by Anonymous over 7 years ago
Puppet 5 is not supported in any way, yet. (2017-07-07: it came out it's not related to Puppet 5)
Updated by Anonymous over 7 years ago
- Related to Refactor #20196: Puppet 5 infra tasks added
Updated by Anonymous over 7 years ago
As a rough guess: As you restored the configs coming from the RPM, you need to edit the HOCON style auth.conf as described in https://theforeman.org/manuals/1.15/index.html#4.3.6Puppet
Please restart puppetserver after that and report back, if it helps. The more relevant log here is the foreman-proxy log file.
Updated by Oliver Freyermuth over 7 years ago
Thanks for your hint!
/etc/puppetlabs/puppetserver/conf.d/auth.conf already contained:
{ match-request: { path: "/puppet/v3/environments" type: path method: get } allow: "*" sort-order: 500 name: "puppetlabs environments" }, { match-request: { path: "/puppet/v3/resource_type" type: path method: [get, post] } allow: "*" sort-order: 500 name: "puppetlabs resource type" }, { match-request: { path: "/puppet/v3/environment_classes" type: path method: get } allow: "*" sort-order: 500 name: "puppetlabs environment classes" },
Chacking /etc/puppetlabs/puppet/auth.conf also, found that:
path /puppet/v3/environments method find allow * path /puppet/v3/resource_type method search allow *
i.e. environment_classes was missing, so I added that.
Restarting puppetserver and now checking the proxy.log, I find during the import attempt in foreman:
I, [2017-07-03T23:12:44.797253 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:12:44 +0200] "GET /puppet/environments HTTP/1.1" 200 37 1.6680 I, [2017-07-03T23:12:46.502184 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:12:46 +0200] "GET /puppet/environments HTTP/1.1" 200 37 1.4508 I, [2017-07-03T23:12:47.132878 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:12:47 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.3812 W, [2017-07-03T23:12:47.358735 ] WARN -- : Puppet server classes cache is disabled, classes retrieval can be slow. I, [2017-07-03T23:12:58.396921 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:12:58 +0200] "GET /puppet/environments/production/classes HTTP/1.1" 200 89024 11.0388 I, [2017-07-03T23:13:13.064043 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:13 +0200] "GET /puppet/environments HTTP/1.1" 200 37 14.4135 I, [2017-07-03T23:13:13.562581 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:13 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.3012 I, [2017-07-03T23:13:13.884097 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:13 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.2217 W, [2017-07-03T23:13:14.285157 ] WARN -- : Puppet server classes cache is disabled, classes retrieval can be slow. I, [2017-07-03T23:13:14.608685 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:14 +0200] "GET /puppet/environments/common/classes HTTP/1.1" 200 2 0.3284 W, [2017-07-03T23:13:14.871090 ] WARN -- : Puppet server classes cache is disabled, classes retrieval can be slow. I, [2017-07-03T23:13:15.269573 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:15 +0200] "GET /puppet/environments/development/classes HTTP/1.1" 200 2 0.4232 I, [2017-07-03T23:13:15.622136 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:15 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.2063 I, [2017-07-03T23:13:15.979667 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:15 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.2128 I, [2017-07-03T23:13:16.297830 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:16 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.1905 I, [2017-07-03T23:13:16.885009 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:16 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.2119 I, [2017-07-03T23:13:17.548887 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:17 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.4144 I, [2017-07-03T23:13:19.802883 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:19 +0200] "GET /puppet/environments HTTP/1.1" 200 37 2.1358 W, [2017-07-03T23:13:19.936309 ] WARN -- : Puppet server classes cache is disabled, classes retrieval can be slow. I, [2017-07-03T23:13:25.905307 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:25 +0200] "GET /puppet/environments/production/classes HTTP/1.1" 200 89024 5.9695 I, [2017-07-03T23:13:26.364198 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:26 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.2477 I, [2017-07-03T23:13:26.656083 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:26 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.1758 I, [2017-07-03T23:13:27.100423 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:27 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.3176 W, [2017-07-03T23:13:27.391071 ] WARN -- : Puppet server classes cache is disabled, classes retrieval can be slow. I, [2017-07-03T23:13:27.627488 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:27 +0200] "GET /puppet/environments/common/classes HTTP/1.1" 200 2 0.2522 W, [2017-07-03T23:13:27.728661 ] WARN -- : Puppet server classes cache is disabled, classes retrieval can be slow. I, [2017-07-03T23:13:27.906932 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:27 +0200] "GET /puppet/environments/development/classes HTTP/1.1" 200 2 0.1788 I, [2017-07-03T23:13:28.195128 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:28 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.1945 I, [2017-07-03T23:13:28.469852 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:28 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.1814 I, [2017-07-03T23:13:28.774869 ] INFO -- : 131.220.166.5 - - [03/Jul/2017:23:13:28 +0200] "GET /puppet/environments HTTP/1.1" 200 37 0.1797
so nothing really interesting here.
The stacktrace in foreman/production.log remains, starting with:
2017-07-03 23:13:28 10190ea7 [app] [W] Action failed | RuntimeError: can't modify frozen String | /usr/share/foreman/app/controllers/concerns/foreman/controller/environments.rb:59:in `list_ignored' | /usr/share/foreman/app/controllers/concerns/foreman/controller/environments.rb:32:in `import_environments'
However, I realized one special piece of configuration in /usr/share/foreman/config/ignored_environments.yml:
:filters: - !ruby/regexp '/^(?!role|profile).*$/'
which we have been using might be involved. Removing that, importing environments works fine again!
How / why do we need to adapt this filter now suddenly, following the puppet 5 upgrade? It seems unrelated on first sight...
Updated by Anonymous over 7 years ago
The returned data from pupeptserver might be different in 5.x, although I have to state it did work for me with 5.x and Foreman nightlies on a clean fresh install and puppetlabs-ntp as module in the production environment.
Updated by Oliver Freyermuth over 7 years ago
The curious point is that things start to work again once I remove the filter condition in /usr/share/foreman/config/ignored_environments.yml.
However, if I add back a filter such as:
:filters: - !ruby/regexp '/^(?!profile).*$/'
things break again...
Updated by Anonymous over 7 years ago
I can't reproduce this, but didn't dig deeper:
root@ralph-mostert:~# /opt/puppetlabs/bin/puppet --version 5.0.0 root@ralph-mostert:~# /opt/puppetlabs/bin/puppet module list --modulepath /etc/puppetlabs/code/environments/production/modules /etc/puppetlabs/code/environments/production/modules ├── puppet-extlib (v1.1.0) ├── puppetlabs-apache (v1.11.0) ├── puppetlabs-concat (v2.2.1) ├── puppetlabs-ntp (v6.2.0) ├── puppetlabs-stdlib (v4.17.1) └── theforeman-puppet (v7.1.1) root@ralph-mostert:~# cat ~foreman/config/ignored_environments.yml #:ignored: # - test :filters: - !ruby/regexp '/^(?!role|profile).*$/'
As you can see, I don't have classes that fall into that pattern, so it would be nice if you could check if that happens only with such classes present and if yes, if it's really specific to puppetserver 5 vs. 4 (with the same foreman and foreman-proxy version) .
Updated by Oliver Freyermuth over 7 years ago
Your hunch was right, it seems.
The problem only happens if I have our
class profile::puppet
in /etc/puppetlabs/code/environments/production/modules/profile/manifests/puppet.pp
included. Removing that class, or giving it another name, appears to make things work again.
Since we added that profile class just yesterday, it might not be related to the Puppet 5 update (done yesterday...) at all. I believe this is really just some strange kind of name collision...
Updated by Oliver Freyermuth over 7 years ago
In addition, I should note that having other profile classes (matching the filter) seems not to be an issue at all.
Updated by Oliver Freyermuth over 7 years ago
We have now renamed our "profile::puppet" class and the file "puppet.pp" containing it to
profile::puppet5 and "puppet5.pp", which made the problem vanish.
So this is likely unrelated to the Puppet 5 upgrade, but some strange kind of name collision.
Updated by Anonymous over 7 years ago
- Subject changed from Foreman fails to import puppet classes from a puppetserver from Puppet 5 to Puppet class "profile::puppet" leads to errors when using ignored_environments
- Category set to Puppet integration
Danke :)
Updated by Anonymous over 7 years ago
- Related to deleted (Refactor #20196: Puppet 5 infra tasks)