Bug #10102
open
BMC query fails with 'undefined method downcase for nil:NilClass
Added by Jérôme Vizcaino over 9 years ago.
Updated over 9 years ago.
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).
- 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).
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.
- Related to Bug #7543: allow additional rubyipmi connection options to be passed through added
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.
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 ?
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 ?
- Related to Bug #10112: Allow user to define BMC driver / options per hardware model added
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.
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