Foreman, Puppet and Windows 2012 R2?

Hi community,

currently we are trying to use Puppet 3.8.7, Foreman 1.10.2 and Windows
2012 R2 in combination and we have a "bootstrapping" problem.
At the first agent run, the windows server is sending his certificate
signing request to Puppet, which is visible in foreman. We are signing this
and the server is registering at foreman, but the server has no facts in
the host overview.
In the fact details we are able to find the servers facts.

Do you have any idea why this behaviour is shown? Windows 2008 R2 and linux
servers are working fine.

Thanks,
Robert

Hi,

is that the wrong place to ask for help and should I go to the dev mailing
list?

Thanks,
Robert

··· Am Sonntag, 19. Juni 2016 22:13:26 UTC+2 schrieb Robert K: > > Hi community, > > currently we are trying to use Puppet 3.8.7, Foreman 1.10.2 and Windows > 2012 R2 in combination and we have a "bootstrapping" problem. > At the first agent run, the windows server is sending his certificate > signing request to Puppet, which is visible in foreman. We are signing this > and the server is registering at foreman, but the server has no facts in > the host overview. > In the fact details we are able to find the servers facts. > > Do you have any idea why this behaviour is shown? Windows 2008 R2 and > linux servers are working fine. > > > Thanks, > Robert > >

Mailing lists can sometimes be slow, you have to hit the right person :wink:

To your question - by default the facts are sent along with the ENC
request, so if you're only doing reporting, you won't see facts in the UI.
There are other ways to enable fact upload though, if that's the case, or
if you are using the ENC then there's some debugging to do. So the first
question is: are you using the ENC?

Greg

··· On 21 June 2016 at 15:18, 'Robert K' via Foreman users < foreman-users@googlegroups.com> wrote:

Hi,

is that the wrong place to ask for help and should I go to the dev mailing
list?

Hi Greg,

we are using Foreman as ENC and are not just uploading facts and reports to
it.
To allow multi-tenancy within the foreman we perform additional steps as
part of the agent installation by submitting two custom facts, which are
foreman_organization and environment. Foreman_organization is used so that
a new server is assigned to the correct foreman organization, obviously, so
that our project teams do not have to contact the foreman administrators
when creating a new server.
Both facts are perfectly working on all linux systems (RHEL/CentOS 5-7,
Windows 2008 R2) and are correctly being transferred to Foreman, because
they can be seen in the fact details of the host.

I attached two pictures.

  • The first one, the host view, is where you can see that the submitted
    facts are not shown/ are not useable for Foreman. I've highlighted the
    within Foreman manually assigned facts with a red frame.
  • The second one, the fact details of this host, show's that in general the
    facts are submitted.

The question is, why is foreman not able to map the submitted facts to the
overview and thereby to assign the server to the correct organization?

Thanks,
Robert

··· Am Dienstag, 21. Juni 2016 18:11:27 UTC+2 schrieb Greg Sutcliffe: > > On 21 June 2016 at 15:18, 'Robert K' via Foreman users < > forema...@googlegroups.com > wrote: > >> Hi, >> >> is that the wrong place to ask for help and should I go to the dev >> mailing list? >> > > Mailing lists can sometimes be slow, you have to hit the right person ;) > > To your question - by default the facts are sent along with the ENC > request, so if you're only doing reporting, you won't see facts in the UI. > There are other ways to enable fact upload though, if that's the case, or > if you are using the ENC then there's some debugging to do. So the first > question is: are you using the ENC? > > Greg >

Are you seeing any other hosts (potentially in the Any Context rather than
in an Org) with the same hostname where the facts are displayed
correctly? It's possible Foreman isn't matching up the incoming facts to
the existing host, and accidentally creating a new host instead.

In any case, I'd suggest increasing the Foreman logging to DEBUG and then
tailing production.log while running puppet on the problem client. That
should log the fact upload and display more info on what is happening to it.

··· On 22 June 2016 at 08:08, 'Robert K' via Foreman users < foreman-users@googlegroups.com> wrote:

Hi Greg,

The question is, why is foreman not able to map the submitted facts to the
overview and thereby to assign the server to the correct organization?

Hi Greg,

all other hosts, roughly ~330, are working fine and the new vm is the only
one, not being duplicated.
I've looked into the debug logfiles, like you recommended and found the
following exception:

> Started POST "/api/hosts/facts" for 172.29.46.129 at 2016-06-22 16:40:48
+0200
2016-06-22 16:40:48 [app] [I] Processing by Api::V2::HostsController#facts
as JSON
2016-06-22 16:40:48 [app] [I] Parameters: {"facts"=>"[FILTERED]", "name"=>
"WIN-I8LJ0IKEFMM", "certname"=>"win-i8lj0ikefmm", "apiv"=>"v2", :host=>{
"name"=>"WIN-I8LJ0IKEFMM", "certname"=>"win-i8lj0ikefmm"}}
2016-06-22 16:40:48 [app] [D] Setting current organization thread-local
variable to none
2016-06-22 16:40:48 [app] [D] Verifying request from [
"puppet-master-7005-01.internal.domain"] against [
"puppet-master-7001-02.internal.domain",
"puppet-master-7001-03.internal.domain",
"puppet-master-7001-04.internal.domain",
"puppet-master-7002-02.internal.domain",
"puppet-master-7003-02.internal.domain",
"puppet-master-7003-03.internal.domain",
"puppet-master-7004-02.internal.domain",
"puppet-master-7005-01.internal.domain", "zed-lcfgm-7006-03.internal.domain"
, "puppet-master-7006-04.internal.domain"]
2016-06-22 16:40:48 [app] [D] Setting current user thread-local variable to
foreman_api_admin
2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': deleted 0
facts
2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': added 0
facts
2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': updated 7
facts
2016-06-22 16:40:48 [app] [I] Import facts for 'win-i8lj0ikefmm' completed.
Added: 0, Updated: 7, Deleted 0 facts
2016-06-22 16:40:48 [app] [D] We have following interfaces 'ethernet_2'
based on facts
2016-06-22 16:40:48 [app] [D] Interface ethernet_2 facts: {"ipaddress"=>
"192.168.250.71", "macaddress"=>"DA:22:D3:73:F3:7F", "netmask"=>
"255.255.255.224", "mtu"=>"0", "network"=>"192.168.250.64"}
2016-06-22 16:40:48 [app] [W] Action failed
> ActiveRecord::RecordInvalid: Validation failed: Identifier Can't add or
remove . from identifier
>
/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/validations.rb:56:in
save!&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/ active_record/attribute_methods/dirty.rb:33:insave!'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:246:in
block in save!&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:295:inblock in with_transaction_returning_status'
> /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/
active_record/connection_adapters/abstract/database_statements.rb:192:in
transaction&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:208:intransaction'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:293:in
with_transaction_returning_status&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/ active_record/transactions.rb:246:insave!'
> /usr/share/foreman/app/models/host/base.rb:168:in set_interfaces&#39; &gt; /usr/share/foreman/app/models/host/base.rb:148:inpopulate_fields_from_facts'
> /usr/share/foreman/app/models/host/managed.rb:525:in
populate_fields_from_facts&#39; &gt; /usr/share/foreman/app/models/host/base.rb:124:inimport_facts'
> /usr/share/foreman/app/models/host/managed.rb:516:in
import_host_and_facts&#39; &gt; /usr/share/foreman/app/controllers/api/v2/hosts_controller.rb:229:infacts'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/implicit_render.rb:4:in
send_action&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/base.rb:167:inprocess_action'
> /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/
action_controller/metal/rendering.rb:10:in process_action&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/callbacks.rb:18:inblock in process_action'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:518:in
block (5 levels) in _run__2505536197786318352__process_action__1319555252796212799__callbacks&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/ active_support/callbacks.rb:215:inblock in
_conditional_callback_around_7621'
> /usr/share/foreman/app/controllers/api/v2/base_controller.rb:151:in disable_json_root&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:214:in_conditional_callback_around_7621'
> /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/
active_support/callbacks.rb:495:in block (4 levels) in _run__2505536197786318352__process_action__1319555252796212799__callbacks&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:215:inblock in _conditional_callback_around_7620'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:326:in
around&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/ active_support/callbacks.rb:310:in_callback_around_1961'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:214:in
_conditional_callback_around_7620&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:483:inblock (3 levels) in
_run__2505536197786318352__process_action__1319555252796212799__callbacks'
> /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/
active_support/callbacks.rb:215:in block in _conditional_callback_around_7619&#39; &gt; /usr/share/foreman/app/controllers/concerns/application_shared.rb:13:in
set_timezone'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:214:in
_conditional_callback_around_7619&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/ active_support/callbacks.rb:482:inblock (2 levels) in
_run__2505536197786318352__process_action__1319555252796212799__callbacks'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:215:in
block in _conditional_callback_around_7618&#39; &gt; /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:inclear_thread'
> /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/
active_support/callbacks.rb:214:in _conditional_callback_around_7618&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:437:inblock in
_run__2505536197786318352__process_action__1319555252796212799__callbacks'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:215:in
block in _conditional_callback_around_7617&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/ active_support/callbacks.rb:326:inaround'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:310:in
_callback_around_13&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:214:in_conditional_callback_around_7617'
> /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/
active_support/callbacks.rb:403:in
_run__2505536197786318352__process_action__1319555252796212799__callbacks&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:405:in__run_callback'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:385:in
_run_process_action_callbacks&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/ active_support/callbacks.rb:81:inrun_callbacks'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/callbacks.rb:17:in
process_action&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/rescue.rb:29:inprocess_action'
> /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/
action_controller/metal/instrumentation.rb:30:in block in process_action&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/notifications.rb:123:inblock in instrument'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/notifications/instrumenter.rb:20:in
instrument&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/ active_support/notifications.rb:123:ininstrument'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/instrumentation.rb:29:in
process_action&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/params_wrapper.rb:207:inprocess_action'
> /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/
active_record/railties/controller_runtime.rb:18:in process_action&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/base.rb:121:inprocess'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/abstract_controller/rendering.rb:45:in
process&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/ action_controller/metal.rb:203:indispatch'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal/rack_delegation.rb:14:in
dispatch&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_controller/metal.rb:246:inblock in action'
> /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/
action_dispatch/routing/route_set.rb:73:in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/routing/route_set.rb:73:indispatch'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/routing/route_set.rb:36:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/ action_dispatch/routing/mapper.rb:42:incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/journey-1.0.4/lib/journey/router.rb:68:in
block in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/journey-1.0.4/lib/journey/router.rb:56:ineach'
> /opt/rh/ruby193/root/usr/share/gems/gems/journey-1.0.4/lib/journey/router
.rb:56:in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/routing/route_set.rb:600:incall'
>
/opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.2.6/lib/apipie/static_dispatcher.rb:65:in
call&#39; &gt; /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.2.6/lib/ apipie/extractor/recorder.rb:97:incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/static.rb:62:in
call&#39; &gt; /opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.2.6/lib/apipie/middleware/checksum_in_headers.rb:27:incall'
> /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/
action_dispatch/middleware/best_standards_support.rb:17:in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/etag.rb:23:in
call'
>
/opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/conditionalget.rb:35:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/ action_dispatch/middleware/head.rb:14:incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/params_parser.rb:21:in
call&#39; &gt; /usr/share/foreman/lib/middleware/catch_json_parse_errors.rb:9:incall'
> /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/
action_dispatch/middleware/flash.rb:242:in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:205:incontext'
>
/opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/session/abstract/id.rb:200:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/ action_dispatch/middleware/cookies.rb:339:incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/query_cache.rb:64:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:473:incall'
> /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/
action_dispatch/middleware/callbacks.rb:28:in block in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:405:in_run__128326991633453186__call__168911735577106586__callbacks'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:405:in
__run_callback&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/ active_support/callbacks.rb:385:in_run_call_callbacks'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:81:in
run_callbacks&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/callbacks.rb:27:incall'
> /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/
action_dispatch/middleware/remote_ip.rb:31:in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/debug_exceptions.rb:16:incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/show_exceptions.rb:56:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/rack/ logger.rb:26:incall_app'
>
/opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/rack/logger.rb:16:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/request_id.rb:22:incall'
> /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/
methodoverride.rb:21:in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/runtime.rb:17:incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/activesupport-3.2.8/lib/active_support/cache/strategy/local_cache.rb:72:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/lock.rb:15: incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/actionpack-3.2.8/lib/action_dispatch/middleware/static.rb:62:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:inforward'
> /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/
context.rb:143:in pass&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:155:ininvalidate'
>
/opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/context.rb:71:in
call!&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-cache-1.2/lib/rack/cache/ context.rb:51:incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/engine.rb:479:in
call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/application.rb:223:incall'
> /opt/rh/ruby193/root/usr/share/gems/gems/railties-3.2.8/lib/rails/railtie
/configurable.rb:30:in method_missing&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/builder.rb:134:incall'
>
/opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:64:in
block in call&#39; &gt; /opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:49 :ineach'
>
/opt/rh/ruby193/root/usr/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:49:in
call&#39; &gt; /usr/share/gems/gems/passenger-4.0.18/lib/phusion_passenger/rack/thread_handler_extension.rb:77:inprocess_request'
> /usr/share/gems/gems/passenger-4.0.18/lib/phusion_passenger/
request_handler/thread_handler.rb:140:in accept_and_process_next_request&#39; &gt; /usr/share/gems/gems/passenger-4.0.18/lib/phusion_passenger/request_handler/thread_handler.rb:108:inmain_loop'
>
/usr/share/gems/gems/passenger-4.0.18/lib/phusion_passenger/request_handler.rb:441:in
block (3 levels) in start_threads&#39; &gt; /opt/theforeman/tfm/root/usr/share/gems/gems/logging-1.8.2/lib/logging/ diagnostic_context.rb:323:incall'
>
/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'
2016-06-22 16:40:48 [app] [I] Rendered
api/v2/errors/standard_error.json.rabl within api/v2/layouts/error_layout
(1.0ms)
2016-06-22 16:40:48 [app] [I] Completed 500 Internal Server Error in 89ms
(Views: 3.6ms | ActiveRecord: 20.4ms)
2016-06-22 16:40:48 [app] [I]

··· Am Mittwoch, 22. Juni 2016 11:48:58 UTC+2 schrieb Greg Sutcliffe: > > On 22 June 2016 at 08:08, 'Robert K' via Foreman users < > forema...@googlegroups.com > wrote: > >> Hi Greg, >> >> The question is, why is foreman not able to map the submitted facts to >> the overview and thereby to assign the server to the correct organization? >> > > Are you seeing any other hosts (potentially in the Any Context rather than > in an Org) with the same hostname where the facts *are* displayed > correctly? It's possible Foreman isn't matching up the incoming facts to > the existing host, and accidentally creating a new host instead. > > In any case, I'd suggest increasing the Foreman logging to DEBUG and then > tailing production.log while running puppet on the problem client. That > should log the fact upload and display more info on what is happening to it. >

Obviously the log is too long to work inline. I've attached the log itself.

··· Am Mittwoch, 22. Juni 2016 16:50:50 UTC+2 schrieb Robert K: > > Hi Greg, > > all other hosts, roughly ~330, are working fine and the new vm is the only > one, not being duplicated. > I've looked into the debug logfiles, like you recommended and found the > following exception: > > > Started POST "/api/hosts/facts" for 172.29.46.129 at 2016-06-22 16:40: > 48 +0200 > 2016-06-22 16:40:48 [app] [I] Processing by Api::V2::HostsController#facts > as JSON > 2016-06-22 16:40:48 [app] [I] Parameters: {"facts"=>"[FILTERED]", "name" > =>"WIN-I8LJ0IKEFMM", "certname"=>"win-i8lj0ikefmm", "apiv"=>"v2", :host=>{ > "name"=>"WIN-I8LJ0IKEFMM", "certname"=>"win-i8lj0ikefmm"}} > 2016-06-22 16:40:48 [app] [D] Setting current organization thread-local > variable to none > 2016-06-22 16:40:48 [app] [D] Verifying request from [ > "puppet-master-7005-01.internal.domain"] against [ > "puppet-master-7001-02.internal.domain", > "puppet-master-7001-03.internal.domain", > "puppet-master-7001-04.internal.domain", > "puppet-master-7002-02.internal.domain", > "puppet-master-7003-02.internal.domain", > "puppet-master-7003-03.internal.domain", > "puppet-master-7004-02.internal.domain", > "puppet-master-7005-01.internal.domain", > "zed-lcfgm-7006-03.internal.domain", > "puppet-master-7006-04.internal.domain"] > 2016-06-22 16:40:48 [app] [D] Setting current user thread-local variable > to foreman_api_admin > 2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': > deleted 0 facts > 2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': added 0 > facts > 2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': > updated 7 facts > 2016-06-22 16:40:48 [app] [I] Import facts for 'win-i8lj0ikefmm' completed > . Added: 0, Updated: 7, Deleted 0 facts > 2016-06-22 16:40:48 [app] [D] We have following interfaces 'ethernet_2' > based on facts > 2016-06-22 16:40:48 [app] [D] Interface ethernet_2 facts: {"ipaddress"=> > "192.168.250.71", "macaddress"=>"DA:22:D3:73:F3:7F", "netmask"=> > "255.255.255.224", "mtu"=>"0", "network"=>"192.168.250.64"} > 2016-06-22 16:40:48 [app] [W] Action failed > > ActiveRecord::RecordInvalid: Validation failed: Identifier Can't add > or remove `.` from identifier > > > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/validations.rb:56:in > `save!' > > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/ > active_record/attribute_methods/dirty.rb:33:in `save!' > > > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:246:in > `block in save!' > > > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:295:in > `block in with_transaction_returning_status' > > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/ > active_record/connection_adapters/abstract/database_statements.rb:192:in > `transaction' > > > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:208:in > `transaction' > > > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:293:in > `with_transaction_returning_status' > > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/ > active_record/transactions.rb:246:in `save!' > > /usr/share/foreman/app/models/host/base.rb:168:in `<span style="color: > #0 > </details>

After changing the NIC name within Windows from "Ethernet 2" to "eth0" it's
working.

I would consider this a workaround, but not a final solution because in
windows usually the interfaces are being named according to their purpose.

··· Am Mittwoch, 22. Juni 2016 16:52:58 UTC+2 schrieb Robert K: > > Obviously the log is too long to work inline. I've attached the log itself. > > > Am Mittwoch, 22. Juni 2016 16:50:50 UTC+2 schrieb Robert K: >> >> Hi Greg, >> >> all other hosts, roughly ~330, are working fine and the new vm is the >> only one, not being duplicated. >> I've looked into the debug logfiles, like you recommended and found the >> following exception: >> >> > Started POST "/api/hosts/facts" for 172.29.46.129 at 2016-06-22 16:40: >> 48 +0200 >> 2016-06-22 16:40:48 [app] [I] Processing by Api::V2::HostsController#facts >> as JSON >> 2016-06-22 16:40:48 [app] [I] Parameters: {"facts"=>"[FILTERED]", >> "name"=>"WIN-I8LJ0IKEFMM", "certname"=>"win-i8lj0ikefmm", "apiv"=>"v2", : >> host=>{"name"=>"WIN-I8LJ0IKEFMM", "certname"=>"win-i8lj0ikefmm"}} >> 2016-06-22 16:40:48 [app] [D] Setting current organization thread-local >> variable to none >> 2016-06-22 16:40:48 [app] [D] Verifying request from [ >> "puppet-master-7005-01.internal.domain"] against [ >> "puppet-master-7001-02.internal.domain", >> "puppet-master-7001-03.internal.domain", >> "puppet-master-7001-04.internal.domain", >> "puppet-master-7002-02.internal.domain", >> "puppet-master-7003-02.internal.domain", >> "puppet-master-7003-03.internal.domain", >> "puppet-master-7004-02.internal.domain", >> "puppet-master-7005-01.internal.domain", >> "zed-lcfgm-7006-03.internal.domain", >> "puppet-master-7006-04.internal.domain"] >> 2016-06-22 16:40:48 [app] [D] Setting current user thread-local variable >> to foreman_api_admin >> 2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': >> deleted 0 facts >> 2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': added >> 0 facts >> 2016-06-22 16:40:48 [app] [D] Merging facts for 'win-i8lj0ikefmm': >> updated 7 facts >> 2016-06-22 16:40:48 [app] [I] Import facts for 'win-i8lj0ikefmm' >> completed. Added: 0, Updated: 7, Deleted 0 facts >> 2016-06-22 16:40:48 [app] [D] We have following interfaces 'ethernet_2' >> based on facts >> 2016-06-22 16:40:48 [app] [D] Interface ethernet_2 facts: {"ipaddress"=> >> "192.168.250.71", "macaddress"=>"DA:22:D3:73:F3:7F", "netmask"=> >> "255.255.255.224", "mtu"=>"0", "network"=>"192.168.250.64"} >> 2016-06-22 16:40:48 [app] [W] Action failed >> > ActiveRecord::RecordInvalid: Validation failed: Identifier Can't add >> or remove `.` from identifier >> > >> /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/validations.rb:56:in >> `save!' >> > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/ >> active_record/attribute_methods/dirty.rb:33:in `save!' >> > >> /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:246:in >> `block in save!' >> > >> /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:295:in >> `block in with_transaction_returning_status' >> > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/ >> active_record/connection_adapters/abstract/database_statements.rb:192:in >> `transaction' >> > >> /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:208:in >> `transaction' >> > >> /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/transactions.rb:293:in >> `with_transaction_returning_status' >> > /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/ >> active_record/transactions.rb:246:in `save!' >> > /usr/share/foreman/app/models/host/base.rb:168:in `> style="color: #0 >> >

Hello

I'm not a windows expert but I thought default ethernet name in Windows is
"Local area connection" which is converted to "local_area_connection" by
facter. We considered "_" as a vlan separator, since on Linux facter reports
"eth0.0" as "eth0_1". The local area connection support was added in [1] but
it handles only interfaces with such name.

You say that you changed "Ethernet 2" to "eth0" which indicates your
interfaces does not fall in our set of known interfaces identifiers. Are these
names standard in Windows world? If that's the case we might need to add
similar code as in [1] to handle them.

[1] Bug #10397: [Foreman 1.8]Error retrieving facts from windows node - Foreman

··· -- Marek

On Thursday 23 of June 2016 00:55:16 ‘Robert K’ via Foreman users wrote:

After changing the NIC name within Windows from “Ethernet 2” to “eth0” it’s
working.

I would consider this a workaround, but not a final solution because in
windows usually the interfaces are being named according to their purpose.

Am Mittwoch, 22. Juni 2016 16:52:58 UTC+2 schrieb Robert K:

Obviously the log is too long to work inline. I’ve attached the log
itself.

Am Mittwoch, 22. Juni 2016 16:50:50 UTC+2 schrieb Robert K:

Hi Greg,

all other hosts, roughly ~330, are working fine and the new vm is the
only one, not being duplicated.
I’ve looked into the debug logfiles, like you recommended and found the

following exception:

Started POST “/api/hosts/facts” for 172.29.46.129 at 2016-06-22 16:40:
48 +0200
2016-06-22 16:40:48 [app] [I] Processing by
Api::V2::HostsController#facts
as JSON
2016-06-22 16:40:48 [app] [I] Parameters: {“facts”=>"[FILTERED]",
“name”=>“WIN-I8LJ0IKEFMM”, “certname”=>“win-i8lj0ikefmm”, “apiv”=>“v2”, :
host=>{“name”=>“WIN-I8LJ0IKEFMM”, “certname”=>“win-i8lj0ikefmm”}}
2016-06-22 16:40:48 [app] [D] Setting current organization thread-local
variable to none
2016-06-22 16:40:48 [app] [D] Verifying request from [
“puppet-master-7005-01.internal.domain”] against [
“puppet-master-7001-02.internal.domain”,
“puppet-master-7001-03.internal.domain”,
“puppet-master-7001-04.internal.domain”,
“puppet-master-7002-02.internal.domain”,
“puppet-master-7003-02.internal.domain”,
“puppet-master-7003-03.internal.domain”,
“puppet-master-7004-02.internal.domain”,
“puppet-master-7005-01.internal.domain”,
“zed-lcfgm-7006-03.internal.domain”,
“puppet-master-7006-04.internal.domain”]
2016-06-22 16:40:48 [app] [D] Setting current user thread-local variable
to foreman_api_admin
2016-06-22 16:40:48 [app] [D] Merging facts for ‘win-i8lj0ikefmm’:
deleted 0 facts
2016-06-22 16:40:48 [app] [D] Merging facts for ‘win-i8lj0ikefmm’: added
0 facts
2016-06-22 16:40:48 [app] [D] Merging facts for ‘win-i8lj0ikefmm’:
updated 7 facts
2016-06-22 16:40:48 [app] [I] Import facts for 'win-i8lj0ikefmm’
completed. Added: 0, Updated: 7, Deleted 0 facts
2016-06-22 16:40:48 [app] [D] We have following interfaces 'ethernet_2’
based on facts
2016-06-22 16:40:48 [app] [D] Interface ethernet_2 facts: {“ipaddress”=>
“192.168.250.71”, “macaddress”=>“DA:22:D3:73:F3:7F”, “netmask”=>
“255.255.255.224”, “mtu”=>“0”, “network”=>“192.168.250.64”}
2016-06-22 16:40:48 [app] [W] Action failed

ActiveRecord::RecordInvalid: Validation failed: Identifier Can’t add

or remove . from identifier

/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_re
cord/validations.rb:56:in `save!’

/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/

active_record/attribute_methods/dirty.rb:33:in `save!’

/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_re
cord/transactions.rb:246:in `block in save!’

/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_re
cord/transactions.rb:295:in `block in with_transaction_returning_status’

/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/

active_record/connection_adapters/abstract/database_statements.rb:192:in
`transaction’

/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_re
cord/transactions.rb:208:in `transaction’

/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_re
cord/transactions.rb:293:in `with_transaction_returning_status’

/opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/

active_record/transactions.rb:246:in `save!’

/usr/share/foreman/app/models/host/base.rb:168:in `<span

style="color: #0

This issue's tracked in Bug #13435: Windows fact import fails with: Can't add or remove `.` from identifier - Foreman.

··· On 23/06/16 15:01, Marek Hulán wrote: > Hello > > I'm not a windows expert but I thought default ethernet name in Windows is > "Local area connection" which is converted to "local_area_connection" by > facter. We considered "_" as a vlan separator, since on Linux facter reports > "eth0.0" as "eth0_1". The local area connection support was added in [1] but > it handles only interfaces with such name. > > You say that you changed "Ethernet 2" to "eth0" which indicates your > interfaces does not fall in our set of known interfaces identifiers. Are these > names standard in Windows world? If that's the case we might need to add > similar code as in [1] to handle them.


Dominic Cleal
dominic@cleal.org