2
0
mirror of https://github.com/pikvm/pikvm synced 2024-11-18 09:25:43 +00:00
pikvm/pages/ipmi.md
2020-10-04 04:38:52 +03:00

2.6 KiB

IPMI BMC

IPMI is an old protocol for remote server management. It can be useful for managing a large number of machines with Pi-KVM. Its advantage is that it is supported by many enterprise systems.

Although Pi-KVM supports the IPMI protocol, we strongly recommend that you DO NOT USE IT outside of trusted networks due to the protocol's insecurity. Use Redfish or KVMD API instead of it.

To enable ipmi IPMI BMC follow these steps:

  1. Switch the filesystem to the RW-mode:
    # rw
    
  2. Setup IPMI account in file /etc/kvmd/ipmipasswd.
  3. Enable kvmd-ipmi daemon:
    # systemctl enable --now kvmd-ipmi
    
  4. Switch the filesystem back to the RO:
    # ro
    
  5. Here some examples (on a remote PC:
    $ ipmitool -I lanplus -U admin -P admin -H pikvm power status
    $ ipmitool -I lanplus -U admin -P admin -H pikvm power on
    

Redfish

Redfish is a more modern server management protocol designed to replace IPMI. It is based on HTTP and fixes many security issues. If possible, we recommend using it instead of IPMI, or using the KVMD API.

There're not special actions required to use Redfish. In addition, Redfish will use regular Pi-KVM credentials. But for systems that have been upgraded to KVMD 2.0 (not a clean image installation), you will probably need to edit the /etc/kvmd/nginx/kvmd.ctx-server.conf file to add these lines at the end:

location /redfish {
      proxy_pass http://kvmd;
      include /etc/kvmd/nginx/loc-proxy.conf;
      auth_request off;
}

Don't be confused by the parameter auth_request off. KVMD performs authorization on its own. The only open HTTP entrypoint is /redfish/v1, which returns a static document and does not change the state of the Pi-KVM. It's safe.

If there is a file in your system after the update /etc/kvmd/nginx/kvmd.ctx-server.conf.pacnew you can just move it:

# mv /etc/kvmd/nginx/kvmd.ctx-server.conf.pacnew /etc/kvmd/nginx/kvmd.ctx-server.conf

Be careful not to lose your local changes if you have done anything with this file before.

To access the Redfish API, use HTTP Basic Auth. Also you can use the redfishtool:

$ redfishtool -S Never -r pikvm root
$ redfishtool -S Never -u admin -p admin -r pikvm Systems
$ redfishtool -S Never -u admin -p admin -r pikvm Systems reset ForceOff