Project

General

Profile

Actions

Bug #20195

open

Puppet class "profile::puppet" leads to errors when using ignored_environments

Added by Oliver Freyermuth almost 7 years ago. Updated over 6 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Puppet integration
Target version:
-
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

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

Actions #1

Updated by Anonymous almost 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)

Actions #2

Updated by Anonymous almost 7 years ago

Actions #3

Updated by Anonymous almost 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.

Actions #4

Updated by Oliver Freyermuth almost 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...

Actions #5

Updated by Anonymous almost 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.

Actions #6

Updated by Oliver Freyermuth almost 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...

Actions #7

Updated by Anonymous almost 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) .

Actions #8

Updated by Oliver Freyermuth almost 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...

Actions #9

Updated by Oliver Freyermuth almost 7 years ago

In addition, I should note that having other profile classes (matching the filter) seems not to be an issue at all.

Actions #10

Updated by Oliver Freyermuth almost 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.

Actions #11

Updated by Anonymous almost 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 :)

Actions #12

Updated by Anonymous almost 7 years ago

Actions

Also available in: Atom PDF