purpleidea / mgmt

Next generation distributed, event-driven, parallel config management!
https://purpleidea.com/tags/mgmtconfig/
GNU General Public License v3.0
3.59k stars 312 forks source link

Create a bmc resource #545

Open purpleidea opened 4 years ago

purpleidea commented 4 years ago

Might be nice to have a bmc resource. It might be useful to wrap bmclib to deal with all the proprietary BMC's out there. Not sure if it has event streams though. I opened an issue here:

https://github.com/bmc-toolbox/bmclib/issues/114

Alternatively or in parallel, it might be nice to wrap openbmc (they seem to have a stream api: https://github.com/openbmc/docs/blob/master/rest-api.md#event-subscription-protocol ) and/or one of the redfish libs.

I didn't look into these, but they came up in googling: https://github.com/stmcginnis/gofish ?? https://github.com/sailfishdell/sailfish ??

1) If anyone would like to work on any of this, have at it, although it would be best if we did some research first to ensure we had an event stream to use. 2) It would be nice to have a way to test this. I don't have much hardware available, so interested vendors are welcome to contact me with donations, and it would also be nice to have a virtual "mock" device available for integration testing.

Happy Hacking!

ffrank commented 6 months ago

Some shallow research suggests that neither Dell nor HPE provide a virtual service processor for testing purposes.

purpleidea commented 6 months ago

I'm sure there's a way! That's the fun of this =D -- At least I'd personally think it's fun.

I'd look into libvirt and ipmi and bridges that do those perhaps. OpenBMC might give some results. Ask on the internet about mock solutions.

Failing all of that, find out what the most inexpensive hardware that does the things we're interested in, and find out how much it would cost. Maybe I can get it sponsored.

purpleidea commented 6 months ago

Shallow research but:

First, you need to select which data source you'd like to compile for. Currently "openbmc" is the only implemented (real) data source, but "simulation" is under development and works. Add the tag for the backend you want to the build, example below shows 'openbmc' build.

From the link above. Stale but might work.

https://github.com/stmcginnis/gofish Looks promising too.

spod commented 4 months ago

I doubt any of these can be used as is, but they may be helpful for whoever has cycles to grab this.

purpleidea commented 4 months ago

@spod If you're feeling motivated, we'd love to have patches =D