Project

General

Profile

Bug #10102

BMC query fails with 'undefined method downcase for nil:NilClass

Added by Jérôme Vizcaino over 6 years ago. Updated over 6 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
BMC
Target version:
-
Difficulty:
Triaged:
No
Bugzilla link:
Pull request:
Fixed in Releases:
Found in Releases:

Description

Upgraded Foreman (frontend and proxy) from 1.7.1 to 1.7.4 and BMC seems to be broken.

Here is what gets logged for the smart-proxy :

"GET /bmc/<ip>/chassis/power/status HTTP/1.1" 200 33 8.1531

It seems to be related to #2749 but, the fix applied for this bug is only to print a useful error whereas I think something really is broken (it worked before the upgrade).


Related issues

Related to Smart Proxy - Bug #7543: allow additional rubyipmi connection options to be passed throughClosed2014-09-19
Related to Foreman - Bug #10112: Allow user to define BMC driver / options per hardware modelNew2015-04-10

History

#1 Updated by Dominic Cleal over 6 years ago

  • Project changed from Foreman to Smart Proxy
  • Category changed from BMC to BMC

There haven't been any changes to BMC code in the smart proxy during the 1.7 lifecycle, so I'd strongly suggest double checking any IPMI configuration both on the target host(s) and locally in the smart proxy (e.g. freeipmi vs ipmitool).

#2 Updated by Jérôme Vizcaino over 6 years ago

BMC LAN access works using ipmitool but I have to use the "-I lanplus" option.
Looking at my dpkg.log, I can see that rubyipmi has been updated from 0.6.0-1 to 0.8.1-1 recently (problably at the same time I updated foreman and the proxy).
I think this may be related.

#3 Updated by Dominic Cleal over 6 years ago

  • Related to Bug #7543: allow additional rubyipmi connection options to be passed through added

#4 Updated by Dominic Cleal over 6 years ago

Yes, 1.7 shipped rubyipmi 0.8.1 and it seems something changed in there from the 0.6 in 1.6. #7543 has some more information about how the smart proxy now supports additional options (1.8.0), which might let the lanplus option be sent, but Foreman itself doesn't have a way to enter these and it seems that this wasn't added to the smart proxy's configuration.

#5 Updated by Jérôme Vizcaino over 6 years ago

Ok, changing line 59 in modules/bmc/ipmi.rb and adding

{ :driver => 'lan20' }

as an extra parameter, make this work.
#7543 would likely fix the problem then.
I assume the extra options will be passed on a per-host basis ?

#6 Updated by Jérôme Vizcaino over 6 years ago

Dominic Cleal wrote:

Yes, 1.7 shipped rubyipmi 0.8.1 and it seems something changed in there from the 0.6 in 1.6. #7543 has some more information about how the smart proxy now supports additional options (1.8.0), which might let the lanplus option be sent, but Foreman itself doesn't have a way to enter these and it seems that this wasn't added to the smart proxy's configuration.

I had a conversation with a guy on IRC and he had the exact same problem : lan (called lan15 in rubyipmi) method failed, lanplus (lan20) worked.

The 'lan' driver is related to very old BMC and considered insecure (auth is done using a clear channel).

Why not make the 'lan20' the default driver and get rid of the hack once Foreman has a proper way of setting bmc options per host ?

#7 Updated by Lukas Zapletal over 6 years ago

  • Related to Bug #10112: Allow user to define BMC driver / options per hardware model added

#8 Updated by Corey Osman over 6 years ago

I have just made Rubyipmi 0.10.0 use lan20 by default. However the bigger question is since this driver selection is automatic in Rubyipmi there should not be a need to pass the driver type in the first place. I want to know why your server is different than all the others that have been tested against. If your error message is different than the one I am expecting to perform auto driver select that I need to see that error message otherwise this will fail. If you upgrade to Rubyipmi version 0.10.0 I would expect this issue to be resolved for you, however I would still like to see the error. #10112 will be necessary to specify options for some equipment, but the goal is not have add these details. So, if I know what errors your servers are spitting out I can automate the resolution in Rubyipmi without requiring everyone to specify additional connection options in foreman. There are some really good BMC additions in the smart proxy develop branch that will help with these issues.

Can you supply the error message when using some basic ipmitool commands without lanplus.

#9 Updated by Jérôme Vizcaino over 6 years ago

Corey: I can test different configurations if you want. Just tell me how to test it and I'll send you the reports. I think we should setup a different task/issue for this (in rubyipmi's github issues maybe ?) so we do not pollute this thread.

Also available in: Atom PDF