---
title: "Dell iDRAC Tools \u0026 RACADM Installation Guide 2025: Ubuntu/Debian PowerEdge Server Management"
source: "https://support.tools/dell-idrac-racadm-installation-ubuntu-debian-2025/"
published: 2025-09-02
categories: ["System Administration","Linux","Hardware"]
tags: ["Dell iDRAC","RACADM","Ubuntu","Debian","PowerEdge","Server Management","Remote Management","Linux Server","Dell Tools","iDRAC Configuration","RPM to DEB","Server Administration","Enterprise Hardware","Out-of-Band 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](#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](#installation-process)

## Prerequisites

Before beginning installation, ensure your system has the following packages:

```bash
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

```bash
# 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:

```bash
# 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:

```bash
# 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:

```bash
# 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:

```bash
# Create symbolic link in PATH
sudo ln -sf /opt/dell/srvadmin/bin/idracadm7 /usr/local/bin/racadm

# Verify installation
racadm --version
```

# [RACADM Command Reference](#racadm-command-reference)

## Connection Syntax

Basic remote connection format:
```bash
racadm -r <iDRAC_IP> -u <username> -p <password> <command> [options]
```

## System Information Commands

### Get Comprehensive System Information
```bash
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
```bash
# 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):
```bash
racadm -r 10.10.10.25 -u root -p "SecurePass123!" racreset soft
```

Hard reset (complete power cycle):
```bash
racadm -r 10.10.10.25 -u root -p "SecurePass123!" racreset hard -f
```

### Network Configuration

Configure static IP:
```bash
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:
```bash
racadm -r 10.10.10.25 -u root -p "SecurePass123!" setniccfg -d
```

## Firmware Update Operations

### Local File Update
```bash
# 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:
```bash
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:
```bash
racadm -r 10.10.10.25 -u root -p "SecurePass123!" update -f firmware.EXE -l nfsserver:/export/path -t NFS --reboot
```

### Repository-Based Updates
```bash
# 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:
```bash
racadm -r 10.10.10.25 -u root -p "SecurePass123!" jobqueue view
```

Delete a specific job:
```bash
racadm -r 10.10.10.25 -u root -p "SecurePass123!" jobqueue delete -i JID_123456789
```

## Certificate Management

### Upload SSL Certificate
```bash
# 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
```bash
racadm -r 10.10.10.25 -u root -p "SecurePass123!" sslcertview -t 1
```

## Power Management

### Server Power Control
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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](#advanced-configuration)

## SNMP Configuration

Enable SNMP and configure community string:
```bash
# 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

```bash
# 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

```bash
# 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](#troubleshooting)

## Common Issues and Solutions

### Library Dependencies

If encountering missing library errors:
```bash
# 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:
```bash
# 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:
```bash
# 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:
```bash
#!/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:
```bash
# 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](#security-considerations)

## Credential Management

Store credentials securely:
```bash
# 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:
```bash
# 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](#automation-examples)

## Health Check Script

```bash
#!/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

```bash
#!/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](#best-practices)

## Regular Maintenance Tasks

1. **Firmware Updates**: Maintain current firmware versions for security and stability
2. **Certificate Renewal**: Implement automated certificate renewal processes
3. **Log Collection**: Regularly export and archive system event logs
4. **Configuration Backup**: Periodically backup iDRAC configurations
5. **Health Monitoring**: Implement proactive hardware health monitoring

## Integration with Configuration Management

Example Ansible playbook for RACADM operations:
```yaml
---
- 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.
