This is a Docker container that uses IPMI to monitor and control the fans on a Dell R610 server through the iDRAC using raw commands.
This script will read the ambient temp sensor every X seconds (20 by default) and then apply a custom defined fan speed to the iDRAC. It has normal, Med, High and Emergency states (all user configurable). Each state can have a custom fan speed but the Emergency state sets it back to Auto-control from the BIOS/iDRAC.
Additionally it sends out healthchecks to healthchecks.io and uses Slacktee to send messages to a slack channel about emergencies. (this can be removed if not wanted).
https://github.com/NoLooseEnds/Scripts/tree/master/R710-IPMI-TEMP was the source of my knowledge on how to issue the commands and it was the inspiration for this effort.
Then run the following
git clone https://github.com/orlikoski/fanoverlord.git
Modify the following fanoverlord/.env
file for each variable needed to configure Slacktee, HealthCheck, and the IPMI connection information. This will be used to fill in the /etc/slacktee.conf
and docker-entrypoint.sh
file within the docker image at build time.
IPMIHOST=<IP Address of the iDRAC on the Server>
IPMIUSER=<User for the iDRAC>
IPMIPW=<Password for the iDRAC
HC_URL=<Unique Ping URL>
https://github.com/coursehero/slacktee
WEBHOOK_URL=<ENTER_HERE_NO_QUOTES>
UPLOAD_TOKEN=<ENTER_HERE_NO_QUOTES>
CHANNEL=<ENTER_HERE_NO_QUOTES>
TMP_DIR=<ENTER_HERE_NO_QUOTES>
USERNAME=<ENTER_HERE_NO_QUOTES>
ICON=<ENTER_HERE_NO_QUOTES>
ATTACHMENT=<ENTER_HERE_NO_QUOTES>
WEBHOOK_URL=https://hooks.slack.com/services/uiowower0982344/
UPLOAD_TOKEN=
CHANNEL=myawesomechannel
TMP_DIR=
USERNAME=slacktee
ICON=ghost
ATTACHMENT=
IPMIHOST=192.168.0.50
IPMIUSER=root
IPMIPW=hobbes
HC_URL=https://hc-ping.com/987asdf987asdf987as23
cd fanoverlord
docker build -t fanoverlord ./
docker-compose up -d