Add Initial Support for iDRAC, iLO, and Supermicro IPMI Power-On Methods#19
Add Initial Support for iDRAC, iLO, and Supermicro IPMI Power-On Methods#19CPBPILOT wants to merge 26 commits intohardwarehaven:mainfrom
Conversation
add config parameter to differentiate between the host ip and the management interface ip
reverted power on logic
Fixed some validation bugs in the config.py and added the verify ssl to the ilo.py
|
I think I can make this backwards compatible |
|
I initially tried to do that by have different client sections for each client type "wol_clients idrac_clients, ilo_clients" but decided that unifying the clients and adding the type property would be a better long term solution for adding additional wake up methods besides the 3 I added. I guess you could have the type be optional and it defaults to the type wol |
|
I think the way forward is with a tagged union, I have an implementation rn just working on testing |
|
I opened a PR on your fork |
|
Oh another note, I think the IPMI command you have for Supermicro would work for dell as well since iDRAC supports IPMI over LAN (it's a thing you have to enable, but so is the redfish thing iirc). |
|
When I originally tested this I didn't have to enable anything to get the idrac clients to work. I believe both of my dells are idrac 9 |
|
I see, maybe it should be named ipmi instead of sm_ipmi to better communicate that it might work with more than just supermicro? |
|
Also, you can update the pr description since it no longer introduces breaking changes |
…han just supermicro servers
Done! |
|
For reviewers: the reason why I really want this feature added is that ipmi is significantly more reliable than WOL in my experience |
|
I realize I'm late to the party and you've already had several discussions and done quite a bit of work - are you at all open to a different config layout? Something like: clients:
- name: "NAS"
host: 192.168.1.100
mac: 00:11:32:ab:cd:ef # wol is the default and for wol clients mac can be at the root level
- name: "Database Server"
host: 192.168.1.101 # IP address or hostname for ping checks
power:
type: wol # Wake-on-LAN method
mac: 38:f7:cd:c5:87:6b # Static MAC address
- name: "Dell Server"
host: 192.168.1.102
power:
type: idrac
ipmi_host: 192.168.1.202 # The iDRAC/IPMI IP address
username: "root"
password: "your-idrac-password"
verify_ssl: false # Optional, defaults to true
- name: "IPMI Server"
host: 192.168.1.103
power:
type: ipmi
ipmi_host: 192.168.1.203 # The IPMI IP address
username: "admin"
password: "your-ipmi-password"
- name: Server3
host: 192.168.1.104
power:
type: ilo
ipmi_host: 192.168.1.204
username: admin
password: secret
verify_ssl: false
- name: "Web App Server"
host: 192.168.1.105
power:
type: wol
mac: auto # MAC will be resolved using ARP at runtimeI'm asking because I'm interested in adding some other client based options (monitoring checks and wake dependencies) and this would let me organize the config changes. |
|
I'm nothing to do with this, and I'm being super cheeky by asking. But any chance we could get PiKVM and/or arbitrary command support included in this PR? Would be great, as obviously I'm a PiKVM user. No worries if not, and of course and feel free to ignore me :) |
|
@Azelphur Probably not as part of this pull request, but it could be added separately. Would you open an issue with a description of what you're looking for? |
That seems reasonable |
Sorry its taken so long to get back to you. I think that would be fine, I'll have to look at how to integrate that and fix the new change you made to the original repo. I just be honest most of this was done with some vibe coding and then testing to get it to work. So my knowledge is limited. |
Summary
This pull request adds support for waking systems using vendor-specific out-of-band management interfaces in addition to Wake-on-LAN (WOL). Supported client types now include:
What's New
Config Example
Why This Is Useful
Please forgive me for all of the edit and commits after making the pull request, this is my first real PR