mirror of
https://github.com/tigerblue77/Dell_iDRAC_fan_controller_Docker.git
synced 2025-11-03 05:23:18 +00:00
Allow manual override of maximum temperature variable via environment variable
This commit is contained in:
@@ -26,5 +26,6 @@ ENV IDRAC_HOST local
|
|||||||
#ENV IDRAC_USER root
|
#ENV IDRAC_USER root
|
||||||
#ENV IDRAC_PASSWORD calvin
|
#ENV IDRAC_PASSWORD calvin
|
||||||
ENV FAN_SPEED 5
|
ENV FAN_SPEED 5
|
||||||
|
ENV MAXIMUM_TEMPERATURE 32
|
||||||
|
|
||||||
CMD /startup.sh && /opt/check_temp.sh && cron && tail -f /var/log/cron.log
|
CMD /startup.sh && /opt/check_temp.sh && cron && tail -f /var/log/cron.log
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
- `IDRAC_HOST` parameter can be set to "local" or to your distant iDRAC's IP address. Default value is "local".
|
- `IDRAC_HOST` parameter can be set to "local" or to your distant iDRAC's IP address. Default value is "local".
|
||||||
- `IDRAC_USERNAME` parameter is only necessary if you're adressing a distant iDRAC. Default value is "root".
|
- `IDRAC_USERNAME` parameter is only necessary if you're adressing a distant iDRAC. Default value is "root".
|
||||||
- `IDRAC_PASSWORD` parameter is only necessary if you're adressing a distant iDRAC. Default value is "calvin".
|
- `IDRAC_PASSWORD` parameter is only necessary if you're adressing a distant iDRAC. Default value is "calvin".
|
||||||
- `FAN_SPEED` parameter can be set as a decimal or hexadecimal value (0x00 to 0x64). Default value is 5 (%).
|
- `FAN_SPEED` parameter can be set as a decimal (from 0 to 100%) or hexadecimal value (from 0x00 to 0x64) you want to set the fans to. Default value is 5(%).
|
||||||
|
- `MAXIMUM_TEMPERATURE` parameter is the threshold beyond which the Dell fan mode defined in your BIOS will become active again (to protect the server hardware against overheat). Default value is 32(°C).
|
||||||
|
|
||||||
To use:
|
To use:
|
||||||
|
|
||||||
@@ -14,6 +15,7 @@ docker run -d \
|
|||||||
--name Dell_iDRAC_fan_controller \
|
--name Dell_iDRAC_fan_controller \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
-e FAN_SPEED=<dec or hex fan speed> \
|
-e FAN_SPEED=<dec or hex fan speed> \
|
||||||
|
-e MAXIMUM_TEMPERATURE=<dec temp treshold> \
|
||||||
alombardo4/idrac-fan-control:latest
|
alombardo4/idrac-fan-control:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -27,6 +29,7 @@ docker run -d \
|
|||||||
-e IDRAC_USERNAME=<iDRAC username> \
|
-e IDRAC_USERNAME=<iDRAC username> \
|
||||||
-e IDRAC_PASSWORD=<iDRAC password> \
|
-e IDRAC_PASSWORD=<iDRAC password> \
|
||||||
-e FAN_SPEED=<dec or hex fan speed> \
|
-e FAN_SPEED=<dec or hex fan speed> \
|
||||||
|
-e MAXIMUM_TEMPERATURE=<dec temp treshold> \
|
||||||
alombardo4/idrac-fan-control:latest
|
alombardo4/idrac-fan-control:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -45,6 +48,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- IDRAC_HOST=local # can be omitted as it is the default value
|
- IDRAC_HOST=local # can be omitted as it is the default value
|
||||||
- FAN_SPEED=0x05 # set to the decimal or hexadecimal value you want to set the fans to (from 0 to 100%)
|
- FAN_SPEED=0x05 # set to the decimal or hexadecimal value you want to set the fans to (from 0 to 100%)
|
||||||
|
- MAXIMUM_TEMPERATURE=<dec temp treshold>
|
||||||
devices:
|
devices:
|
||||||
- /dev/ipmi0:/dev/ipmi0
|
- /dev/ipmi0:/dev/ipmi0
|
||||||
```
|
```
|
||||||
@@ -64,4 +68,5 @@ services:
|
|||||||
- IDRAC_USERNAME=root # set to your IPMI username
|
- IDRAC_USERNAME=root # set to your IPMI username
|
||||||
- IDRAC_PASSWORD=calvin # set to your IPMI password
|
- IDRAC_PASSWORD=calvin # set to your IPMI password
|
||||||
- FAN_SPEED=0x05 # set to the decimal or hexadecimal value you want to set the fans to (from 0 to 100%)
|
- FAN_SPEED=0x05 # set to the decimal or hexadecimal value you want to set the fans to (from 0 to 100%)
|
||||||
|
- MAXIMUM_TEMPERATURE=<dec temp treshold>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -5,8 +5,7 @@ IPMI_USERNAME=`cat /idrac_username.txt`
|
|||||||
IPMI_PASSWORD=`cat /idrac_password.txt`
|
IPMI_PASSWORD=`cat /idrac_password.txt`
|
||||||
DECIMAL_FAN_SPEED=`cat /decimal_fan_speed.txt`
|
DECIMAL_FAN_SPEED=`cat /decimal_fan_speed.txt`
|
||||||
HEXADECIMAL_FAN_SPEED=`cat /hexadecimal_fan_speed.txt`
|
HEXADECIMAL_FAN_SPEED=`cat /hexadecimal_fan_speed.txt`
|
||||||
|
MAXIMUM_INLET_TEMPERATURE=`cat /maximum_inlet_temperature.txt`
|
||||||
MAX_INLET_TEMPERATURE=32
|
|
||||||
|
|
||||||
if [[ $IPMI_HOST == "local" ]]
|
if [[ $IPMI_HOST == "local" ]]
|
||||||
then
|
then
|
||||||
@@ -23,7 +22,7 @@ NC='\033[0m' # No Color
|
|||||||
|
|
||||||
echo "------------------------------------"
|
echo "------------------------------------"
|
||||||
echo "Current inlet temperature is $INLET_TEMPERATURE °C."
|
echo "Current inlet temperature is $INLET_TEMPERATURE °C."
|
||||||
if [ $INLET_TEMPERATURE -gt $MAX_INLET_TEMPERATURE ]
|
if [ $INLET_TEMPERATURE -gt $MAXIMUM_INLET_TEMPERATURE ]
|
||||||
then
|
then
|
||||||
printf "Inlet temperature is ${RED}too high${NC}. Activating default dynamic fan control."
|
printf "Inlet temperature is ${RED}too high${NC}. Activating default dynamic fan control."
|
||||||
ipmitool -I $LOGIN_STRING raw 0x30 0x30 0x01 0x01
|
ipmitool -I $LOGIN_STRING raw 0x30 0x30 0x01 0x01
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ fi
|
|||||||
|
|
||||||
echo $DECIMAL_FAN_SPEED >> /decimal_fan_speed.txt
|
echo $DECIMAL_FAN_SPEED >> /decimal_fan_speed.txt
|
||||||
echo $HEXADECIMAL_FAN_SPEED >> /hexadecimal_fan_speed.txt
|
echo $HEXADECIMAL_FAN_SPEED >> /hexadecimal_fan_speed.txt
|
||||||
|
echo $MAXIMUM_TEMPERATURE >> /maximum_inlet_temperature.txt
|
||||||
|
|
||||||
echo "Idrac/IPMI host: `cat /idrac_host.txt`"
|
echo "Idrac/IPMI host: `cat /idrac_host.txt`"
|
||||||
if [[ $IDRAC_HOST != "local" ]]
|
if [[ $IDRAC_HOST != "local" ]]
|
||||||
@@ -23,3 +24,4 @@ then
|
|||||||
echo "Idrac/IPMI password: `cat /idrac_password.txt`"
|
echo "Idrac/IPMI password: `cat /idrac_password.txt`"
|
||||||
fi
|
fi
|
||||||
echo "Fan speed objective: `cat /decimal_fan_speed.txt`%"
|
echo "Fan speed objective: `cat /decimal_fan_speed.txt`%"
|
||||||
|
echo "Maximum inlet temperature: `cat /maximum_inlet_temperature.txt`°C"
|
||||||
|
|||||||
Reference in New Issue
Block a user