Try IPMI simulator (virtual BMC) again
This would give us much higher test coverage as also the ipmi_sim from OpenIPMI seems to be pretty much feature complete.
First steps for trying it out would be:
- Use QEMU flags like
-device ipmi-bmc-sim,id=bmc0 -chardev socket,id=ipmi0,host=localhost,port=9002,reconnect=10 -device ipmi-bmc-extern,id=bmc1,chardev=ipmi0 -device isa-ipmi-kcs,bmc=bmc1 - Connect
ipmi_simto this device - Try commands with
ipmitool
If this works out, we can think about where we can deploy the metal-bmc to connect the system to the metal-stack. With this, we could start integration tests for go-hal and also refactor go-hal that we have a working default implementation for the IPMI protocol (wider hardware support).
References:
- https://github.com/metal-stack/go-hal/issues/49
- https://github.com/metal-stack/go-hal/issues/51
Additional information:
- http://www.linux-kvm.org/images/7/76/03x08-Juniper-Corey_Minyard-UsingIPMIinQEMU.ods.pdf
I created a proof of concept in https://github.com/robertvolkmann/clab-ipmi
Nice! Is the serial console connection and restarts also working?
Yes, both are working.
Sadly on Dell, ipmi is disabled by default. Is there a Redfish simulator available as well ? Just asking
We could try pyghmi or sushy-tools.
Sadly on Dell, ipmi is disabled by default. Is there a Redfish simulator available as well ? Just asking
It's possible to activate IPMI with a PATCH command with {"IPMI": {"ProtocolEnabled": true}} to https://<iDRAC_IP>/redfish/v1/Managers/iDRAC.Embedded.1`
s. page 171 @ https://dl.dell.com/topicspdf/idrac9-lifecycle-controller-v3303030_API-Guide_en-us.pdf
Sadly on Dell, ipmi is disabled by default. Is there a Redfish simulator available as well ? Just asking
It's possible to activate IPMI with a PATCH command with
{"IPMI": {"ProtocolEnabled": true}}to https://<iDRAC_IP>/redfish/v1/Managers/iDRAC.Embedded.1` s. page 171 @ https://dl.dell.com/topicspdf/idrac9-lifecycle-controller-v3303030_API-Guide_en-us.pdf
Thanks for the pointer, i will try hard to stay with redfish only, but if this does not work will need to do that.