Dell iDRAC Tools & RACADM Installation Guide 2025: Ubuntu/Debian PowerEdge Server Management
Dell’s Integrated Dell Remote Access Controller (iDRAC) provides powerful out-of-band management capabilities for PowerEdge servers. While Dell only officially supports RHEL and SUSE distributions, this guide demonstrates how to successfully install and utilize iDRAC tools, particularly RACADM, on Ubuntu and Debian systems through RPM-to-DEB conversion.
Overview
Dell’s iDRAC tools suite provides command-line utilities for managing PowerEdge servers remotely. The RACADM (Remote Access Controller Admin) utility enables administrators to configure iDRAC settings, update firmware, manage certificates, and perform various maintenance tasks programmatically. Despite lacking official Debian/Ubuntu packages, the RHEL binaries function perfectly when properly installed.
Key Components
The iDRAC tools package includes:
- RACADM: Primary command-line interface for iDRAC management
- IPMItool: Standard IPMI interface tool with Dell enhancements
- Supporting Libraries: Required dependencies for tool operation
Installation Process
Prerequisites
Before beginning installation, ensure your system has the following packages:
sudo apt update
sudo apt install -y wget alien dpkg-dev
Download iDRAC Tools
Current stable version: Dell EMC iDRAC Tools for Linux v9.4.0
# Download the latest iDRAC tools package
wget https://dl.dell.com/FOLDER05920767M/1/DellEMC-iDRACTools-Web-LX-9.4.0-3732_A00.tar.gz
# Extract the archive
tar xvf DellEMC-iDRACTools-Web-LX-9.4.0-3732_A00.tar.gz
# Navigate to the extracted directory
cd iDRACTools
Package Structure Analysis
The extracted archive contains:
iDRACTools/
├── gpl.txt
├── ipmitool/
├── license.txt
├── racadm/
│ ├── install_racadm.sh
│ ├── RHEL7/
│ ├── RHEL8/
│ ├── SLES15/
│ └── uninstall_racadm.sh
└── readme.txt
RPM to DEB Conversion
Navigate to the appropriate RHEL directory based on your Ubuntu/Debian version:
# For Ubuntu 18.04+ or Debian 10+
cd racadm/RHEL8/x86_64
# List available RPM packages
ls -la *.rpm
Convert RPM packages to DEB format using alien:
# Convert all srvadmin RPM packages
sudo alien --scripts --to-deb srvadmin-*.rpm
# Verify DEB package creation
ls -la *.deb
Package Installation
Install all converted packages simultaneously to resolve dependencies:
# Install the converted DEB packages
sudo dpkg -i *.deb
# Fix any dependency issues
sudo apt-get install -f
Create System-Wide Symlink
For convenient system-wide access:
# Create symbolic link in PATH
sudo ln -sf /opt/dell/srvadmin/bin/idracadm7 /usr/local/bin/racadm
# Verify installation
racadm --version
RACADM Command Reference
Connection Syntax
Basic remote connection format:
racadm -r <iDRAC_IP> -u <username> -p <password> <command> [options]
System Information Commands
Get Comprehensive System Information
racadm -r 10.10.10.25 -u root -p "SecurePass123!" getsysinfo
Output includes:
- iDRAC firmware version and MAC address
- System model and service tag
- BIOS version
- Network configuration (IPv4/IPv6)
- Thermal information
- NIC MAC addresses
Query Specific Configuration Groups
# Network configuration
racadm -r 10.10.10.25 -u root -p "SecurePass123!" getconfig -g cfgLanNetworking
# User configuration
racadm -r 10.10.10.25 -u root -p "SecurePass123!" getconfig -g cfgUserAdmin -i 2
# System information
racadm -r 10.10.10.25 -u root -p "SecurePass123!" getconfig -g cfgServerInfo
iDRAC Management Commands
Reset iDRAC Controller
Soft reset (graceful restart):
racadm -r 10.10.10.25 -u root -p "SecurePass123!" racreset soft
Hard reset (complete power cycle):
racadm -r 10.10.10.25 -u root -p "SecurePass123!" racreset hard -f
Network Configuration
Configure static IP:
racadm -r 10.10.10.25 -u root -p "SecurePass123!" setniccfg -s 192.168.1.100 255.255.255.0 192.168.1.1
Enable DHCP:
racadm -r 10.10.10.25 -u root -p "SecurePass123!" setniccfg -d
Firmware Update Operations
Local File Update
# Update with automatic reboot
racadm -r 10.10.10.25 -u root -p "SecurePass123!" update -f /path/to/iDRAC-with-Lifecycle-Controller_Firmware_XXXXX_LN_4.00.00.00.EXE --reboot
# Update without reboot
racadm -r 10.10.10.25 -u root -p "SecurePass123!" update -f /path/to/firmware.EXE -a FALSE
Network Share Updates
CIFS/SMB share:
racadm -r 10.10.10.25 -u root -p "SecurePass123!" update -f firmware.EXE -l //fileserver/share/path -u shareuser -p sharepass --reboot
NFS share:
racadm -r 10.10.10.25 -u root -p "SecurePass123!" update -f firmware.EXE -l nfsserver:/export/path -t NFS --reboot
Repository-Based Updates
# FTP repository update
racadm -r 10.10.10.25 -u root -p "SecurePass123!" update -f Catalog.xml -e ftp.dell.com/catalog/repository -a TRUE -t FTP
# HTTP repository update
racadm -r 10.10.10.25 -u root -p "SecurePass123!" update -f Catalog.xml -e http://repository.dell.com/catalog -a TRUE -t HTTP
Job Queue Management
View current jobs:
racadm -r 10.10.10.25 -u root -p "SecurePass123!" jobqueue view
Delete a specific job:
racadm -r 10.10.10.25 -u root -p "SecurePass123!" jobqueue delete -i JID_123456789
Certificate Management
Upload SSL Certificate
# Upload server certificate
racadm -r 10.10.10.25 -u root -p "SecurePass123!" sslcertupload -t 1 -f /path/to/certificate.pem
# Upload CA certificate
racadm -r 10.10.10.25 -u root -p "SecurePass123!" sslcertupload -t 2 -f /path/to/ca-cert.pem
View Current Certificate
racadm -r 10.10.10.25 -u root -p "SecurePass123!" sslcertview -t 1
Power Management
Server Power Control
# Power on server
racadm -r 10.10.10.25 -u root -p "SecurePass123!" serveraction powerup
# Graceful shutdown
racadm -r 10.10.10.25 -u root -p "SecurePass123!" serveraction powerdown
# Hard power off
racadm -r 10.10.10.25 -u root -p "SecurePass123!" serveraction hardreset
# Power cycle
racadm -r 10.10.10.25 -u root -p "SecurePass123!" serveraction powercycle
Virtual Media Management
Connect Virtual Media
# Connect ISO from network share
racadm -r 10.10.10.25 -u root -p "SecurePass123!" remoteimage -c -l //server/share/image.iso
# Disconnect virtual media
racadm -r 10.10.10.25 -u root -p "SecurePass123!" remoteimage -d
User Management
Create New User
# Add user with admin privileges
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgUserAdmin -o cfgUserAdminUserName -i 3 newadmin
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgUserAdmin -o cfgUserAdminPassword -i 3 "NewPass123!"
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgUserAdmin -o cfgUserAdminPrivilege -i 3 0x1ff
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgUserAdmin -o cfgUserAdminEnable -i 3 1
Modify User Privileges
# Grant full admin rights
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgUserAdmin -o cfgUserAdminPrivilege -i 2 0x1ff
# Read-only access
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgUserAdmin -o cfgUserAdminPrivilege -i 2 0x001
Advanced Configuration
SNMP Configuration
Enable SNMP and configure community string:
# Enable SNMP
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgOobSnmp -o cfgOobSnmpAgentEnable 1
# Set community string
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgOobSnmp -o cfgOobSnmpAgentCommunity "monitoring"
# Configure trap destination
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgTraps -o cfgTrapsAlertDestIPAddr -i 1 192.168.1.50
Email Alert Configuration
# Enable email alerts
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgEmailAlert -o cfgEmailAlertEnable -i 1 1
# Configure SMTP server
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgRemoteHosts -o cfgRhostsSmtpServerIpAddr smtp.example.com
# Set email destination
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgEmailAlert -o cfgEmailAlertAddress -i 1 "alerts@example.com"
LDAP/Active Directory Integration
# Enable LDAP authentication
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgLdap -o cfgLdapEnable 1
# Configure LDAP server
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgLdap -o cfgLdapServer ldap.example.com
# Set base DN
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgLdap -o cfgLdapBaseDN "dc=example,dc=com"
Troubleshooting
Common Issues and Solutions
Library Dependencies
If encountering missing library errors:
# Install required libraries
sudo apt install libargtable2-0 libncurses5 libssl1.0.0
# For newer systems with libssl1.1
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0
Connection Failures
Test connectivity:
# Verify network connectivity
ping -c 4 <iDRAC_IP>
# Test SSH access (if enabled)
ssh root@<iDRAC_IP>
# Check iDRAC web interface
curl -k https://<iDRAC_IP>
Certificate Errors
For self-signed certificate issues:
# Export iDRAC certificate
echo | openssl s_client -connect <iDRAC_IP>:443 2>/dev/null | openssl x509 > idrac.crt
# Add to system trust store
sudo cp idrac.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Performance Optimization
Concurrent Operations
Execute multiple commands efficiently:
#!/bin/bash
IDRAC_IP="10.10.10.25"
IDRAC_USER="root"
IDRAC_PASS="SecurePass123!"
# Create base command
RACADM="racadm -r $IDRAC_IP -u $IDRAC_USER -p $IDRAC_PASS"
# Execute commands in parallel
$RACADM getsysinfo > sysinfo.txt &
$RACADM getconfig -g cfgLanNetworking > network.txt &
$RACADM hwinventory > inventory.txt &
# Wait for completion
wait
Batch Configuration
Apply multiple settings efficiently:
# Create configuration file
cat > idrac_config.txt << EOF
config -g cfgLanNetworking -o cfgNicEnable 1
config -g cfgLanNetworking -o cfgNicUseDHCP 0
config -g cfgLanNetworking -o cfgNicIpAddress 192.168.1.100
config -g cfgLanNetworking -o cfgNicNetmask 255.255.255.0
config -g cfgLanNetworking -o cfgNicGateway 192.168.1.1
EOF
# Apply configuration
racadm -r 10.10.10.25 -u root -p "SecurePass123!" -f idrac_config.txt
Security Considerations
Credential Management
Store credentials securely:
# Use environment variables
export IDRAC_USER="root"
export IDRAC_PASS="SecurePass123!"
racadm -r 10.10.10.25 -u $IDRAC_USER -p $IDRAC_PASS getsysinfo
# Use credential file
echo "SecurePass123!" > ~/.idrac_pass
chmod 600 ~/.idrac_pass
racadm -r 10.10.10.25 -u root -p $(cat ~/.idrac_pass) getsysinfo
Network Security
Implement secure practices:
- Use dedicated management networks for iDRAC access
- Configure firewall rules to restrict iDRAC access
- Enable TLS/SSL for all communications
- Regularly update iDRAC firmware
- Implement strong password policies
- Enable account lockout policies
Audit Logging
Enable comprehensive logging:
# Enable audit logging
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgRacSecurity -o cfgRacSecurityAuditEnable 1
# Configure syslog destination
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgRemoteHosts -o cfgRhostsSyslogEnable 1
racadm -r 10.10.10.25 -u root -p "SecurePass123!" config -g cfgRemoteHosts -o cfgRhostsSyslogServer1 syslog.example.com
Automation Examples
Health Check Script
#!/bin/bash
# iDRAC Health Check Script
IDRAC_LIST="idrac-list.txt"
OUTPUT_DIR="health-reports"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $OUTPUT_DIR
while IFS=',' read -r ip user pass; do
echo "Checking iDRAC at $ip..."
# Create report file
REPORT="$OUTPUT_DIR/${ip}_${DATE}.txt"
# Collect system information
echo "=== System Information ===" >> $REPORT
racadm -r $ip -u $user -p "$pass" getsysinfo >> $REPORT 2>&1
# Check hardware status
echo -e "\n=== Hardware Status ===" >> $REPORT
racadm -r $ip -u $user -p "$pass" getsensorinfo >> $REPORT 2>&1
# Check SEL logs
echo -e "\n=== Recent SEL Entries ===" >> $REPORT
racadm -r $ip -u $user -p "$pass" getsel -i 10 >> $REPORT 2>&1
done < $IDRAC_LIST
Firmware Update Automation
#!/bin/bash
# Automated Firmware Update Script
FIRMWARE_DIR="/mnt/firmware"
IDRAC_LIST="idrac-list.txt"
LOG_FILE="firmware_update_$(date +%Y%m%d).log"
update_firmware() {
local ip=$1
local user=$2
local pass=$3
local fw_file=$4
echo "[$(date)] Starting update for $ip with $fw_file" | tee -a $LOG_FILE
# Create update job
racadm -r $ip -u $user -p "$pass" update -f $fw_file -l $FIRMWARE_DIR --reboot 2>&1 | tee -a $LOG_FILE
# Monitor job status
while true; do
STATUS=$(racadm -r $ip -u $user -p "$pass" jobqueue view -i 1 2>/dev/null | grep "Status" | awk '{print $3}')
case $STATUS in
"Completed")
echo "[$(date)] Update completed successfully for $ip" | tee -a $LOG_FILE
break
;;
"Failed")
echo "[$(date)] Update failed for $ip" | tee -a $LOG_FILE
break
;;
*)
echo "[$(date)] Update in progress for $ip: $STATUS" | tee -a $LOG_FILE
sleep 60
;;
esac
done
}
# Process each iDRAC
while IFS=',' read -r ip user pass fw_file; do
update_firmware $ip $user "$pass" $fw_file &
done < $IDRAC_LIST
# Wait for all updates to complete
wait
Best Practices
Regular Maintenance Tasks
- Firmware Updates: Maintain current firmware versions for security and stability
- Certificate Renewal: Implement automated certificate renewal processes
- Log Collection: Regularly export and archive system event logs
- Configuration Backup: Periodically backup iDRAC configurations
- Health Monitoring: Implement proactive hardware health monitoring
Integration with Configuration Management
Example Ansible playbook for RACADM operations:
---
- name: Configure iDRAC Settings
hosts: idrac_hosts
gather_facts: no
tasks:
- name: Set iDRAC network configuration
shell: |
racadm -r {{ ansible_host }} -u {{ idrac_user }} -p {{ idrac_pass }} \
setniccfg -s {{ idrac_ip }} {{ idrac_netmask }} {{ idrac_gateway }}
- name: Configure SNMP settings
shell: |
racadm -r {{ ansible_host }} -u {{ idrac_user }} -p {{ idrac_pass }} \
config -g cfgOobSnmp -o cfgOobSnmpAgentEnable 1
- name: Update iDRAC firmware
shell: |
racadm -r {{ ansible_host }} -u {{ idrac_user }} -p {{ idrac_pass }} \
update -f {{ firmware_file }} -l {{ firmware_share }} --reboot
when: update_firmware | default(false)
This comprehensive guide provides the foundation for effectively managing Dell PowerEdge servers through iDRAC on Ubuntu and Debian systems. The techniques and commands presented enable full remote management capabilities despite the lack of official distribution support.