• Stars
    star
    603
  • Rank 74,294 (Top 2 %)
  • Language
    PowerShell
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python and PowerShell scripting for Dell EMC PowerEdge iDRAC REST API with DMTF Redfish

iDRAC-Redfish-Scripting

Python and PowerShell scripting for Dell EMC PowerEdge iDRAC REST API with DMTF Redfish.

Sample scripts written in Python and PowerShell that illustrate using the integrated Dell Remote Access Controller (iDRAC) REST API with Redfish to manage Dell EMC PowerEdge servers.

Powershell cmdlets can also be installed from Powershell gallery using Install-Module. Recommended to install IdracRedfishSupport module which will import all iDRAC cmdlets.

For Python, you can leverage either individual python scripts or install iDRAC Python Redfish module. This module is an interactive session with an iDRAC which allows you to perform multiple workflows like firwmare updates or configuration changes to BIOS, NIC or Storage. You can install this module by running "pip3 install IdracRedfishSupport".

NOTE: When installing IdracRedfishSupport module using pip3, this will also install all standalone python scripts from the GitHub Python directory.

When executing any script or cmdlet, if your username or password has special characters or passing in domain name along with username, make sure to surround the argument value with double quotes.

Examples:

"testdomain.i\aduser", "testdomain.i/aduser", "[email protected]"

Redfish Overview

There are various Out-of-Band (OOB) systems management standards available in the industry today. However, there is no single standard that can be easily used within emerging programming standards, can be readily implemented within embedded systems, and can meet the demands of today’s evolving IT solution models. New IT solutions models have placed new demands on systems management solutions to support expanded scale, higher security, and multi-vendor openness, while also aligning with modern DevOps tools and processes. Recognizing these needs, Dell EMC and other IT solutions leaders within the Distributed Management Task Force (DMTF) undertook the creation of a new management interface standard. After a multi-year effort, the new standard, Redfish v1.0, was announced in July, 2015.

Redfish’s key benefits include:

  • Increased simplicity and usability
  • Encrypted connections and generally heightened security
  • A programmatic interface that can easily be controlled through scripts
  • Based on widely-used standards for web APIs and data formats

Redfish has been designed to support the full range of server architectures from monolithic servers to converged infrastructure and hyper-scale architecture. The Redfish data model, which defines the structure and format of data representing server status, inventory and available operational functions, is vendor-neutral. Administrators can then create management automation scripts that can manage any Redfish compliant server. This is crucial for the efficient operation of a heterogonous server fleet.

Using Redfish also has significant security benefits: unlike legacy management protocols, Redfish utilizes HTTPS encryption for secure and reliable communication. All Redfish network traffic, including event notifications, can be sent encrypted across the network.

Redfish provides a highly organized and easily accessible method to interact with a server using scripting tools. The web interface employed by Redfish is supported by many programming languages, and its tree-like structure makes information easier to locate. Data returned from a Redfish query can be turned into a searchable dictionary consisting of key-value-pairs. By looking at the values in the dictionary, it is easy to locate settings and current status of a Redfish managed system. These settings can then be updated and actions issued to one or multiple systems.

iDRAC with Lifecycle Controller Overview

The Integrated Dell Remote Access Controller (iDRAC) is designed to enhance the productivity of server administrators and improve the overall availability of PowerEdge servers. iDRAC alerts administrators to server problems, enabling remote server management, and reducing the need for an administrator to physically visit the server. iDRAC with Lifecycle Controller allows administrators to deploy, update, monitor and manage Dell servers from any location without the use of agents in a one-to-one or one-to-many method. This out-of-band management allows configuration changes and firmware updates to be managed from Dell EMC, appropriate third-party consoles, and custom scripting directly to iDRAC with Lifecycle Controller using supported industry-standard API’s. To support the Redfish standard, the iDRAC with Lifecycle Controller includes support for the iDRAC REST API in addition to support for the IPMI, SNMP, and WS-Man standard APIs. The iDRAC REST API builds upon the Redfish standard to provide a RESTful interface for Dell EMC value-add operations including:

  • Information on all iDRAC with Lifecycle Controller out-of-band services—web server, SNMP, virtual media, SSH, Telnet, IPMI, and KVM
  • Expanded storage subsystem reporting covering controllers, enclosures, and drives
  • For the PowerEdge FX2 modular server, detailed chassis information covering power supplies, temperatures, and fans
  • With the iDRAC Service Module (iSM) installed under the server OS, the API provides detailed inventory and status reporting for host network interfaces including such details as IP address, subnet mask, and gateway for the Host OS.

Learning more about iDRAC and Redfish

For complete information concerning iDRAC with Lifecycle Controller, see the documents at http://www.dell.com/idracmanuals .

See iDRAC whitepapers below for more information about overview of Redfish support, detailed workflow examples or commonly asked questions:

For details on the DMTF Redfish standard, visit https://www.dmtf.org/standards/redfish

iDRAC REST API with Redfish Scripting Library

This GitHub library contains example Python and PowerShell scripts that illustrate the usage of the iDRAC REST API with Redfish to perform many different workflows which include:

BIOS operations

  • Get / Set BIOS attributes
  • Get / Set BIOS boot order, boot source state
  • Set next one-time boot device
  • Set BIOS to default settings

iDRAC operations

  • Change an iDRAC user password
  • Set iDRAC to default settings
  • Get iDRAC Lifecycle Controller logs
  • Get / Set iDRAC, Lifecycle Controller, and System Attributes

Firmware operations

  • Get server firmware inventory
  • Perform a single server device firmware update

Server operations

  • Export / Import Server Configuration Profile (SCP)
  • Preview SCP Import
  • Get / Set server power state
  • Get server storage inventory

Storage operations

  • Create virtual disk
  • Reset controller
  • Set / Rekey / Remove controller encryption
  • Assign / Unassign DHS / GHS

Prerequisites

  • PowerEdge 12G/13G/14G/15G servers
  • Minimum iDRAC 7/8 FW 2.40.40.40, iDRAC9 FW 3.00.00.00
  • Python 3.x
  • PowerShell 5.0 or later

Support

Please note this code is provided as-is and currently not supported by Dell.

Report problems or provide feedback

If you run into any problems or would like to provide feedback, please open an issue here https://github.com/dell/idrac-Redfish-Scripting/issues

More Repositories

1

dkms

Dynamic Kernel Module Support
Shell
651
star
2

dellemc-openmanage-ansible-modules

Dell OpenManage Ansible Modules
Python
326
star
3

omnia

An open-source toolkit for deploying and managing high performance clusters for HPC, AI, and data analytics workloads.
YAML
218
star
4

redfish-ansible-module

Ansible modules for Out-Of-Band Controllers using Redfish APIs
Python
193
star
5

libsmbios

library for interacting with Dell SMBIOS tables
C
187
star
6

thunderbolt-nvm-linux

Thunderbolt NVM updates for Linux
C
103
star
7

dell-recovery

Dell Recovery for Ubuntu
Python
100
star
8

OpenManage-Enterprise

Script collateral leveraging the OME/OME-M REST APIs
Python
92
star
9

biosdisk

Flashing Dell BIOS images on Linux systems
Shell
89
star
10

terraform-provider-redfish

Terraform provider for Redfish REST APIs
Go
87
star
11

csi-baremetal

Bare-metal CSI Driver
Go
71
star
12

csm

Dell Container Storage Modules (CSM)
Makefile
67
star
13

csi-powerflex

CSI Driver for Dell PowerFlex
Go
58
star
14

omsdk

Dell EMC OpenManage Python SDK
Python
57
star
15

Endpoint-Management-Script-Library

Client Management Script Library setup for Intune.
PowerShell
50
star
16

csi-powerscale

CSI Driver for Dell PowerScale
Go
48
star
17

PyU4V

PyU4V is a Python module that simplifies interaction with the Unisphere for PowerMax REST API. It wraps REST calls with simple APIs that abstracts the HTTP request and response handling.
Python
41
star
18

csi-powerstore

CSI Driver for Dell PowerStore
Go
40
star
19

DellPEWSMANTools

PowerShell Tools for Dell PowerEdge Server Management (WS-MAN)
PowerShell
38
star
20

ansible-powermax

Ansible Modules for Dell PowerMax
Python
32
star
21

ansible-powerstore

Ansible Modules for Dell PowerStore
Python
31
star
22

csi-unity

CSI Driver for Dell Unity
Go
30
star
23

opentelemetry-cli

human-friendly OpenTelemetry CLI
Python
30
star
24

ansible-powerscale

PowerScale (Isilon) Ansible modules
Python
29
star
25

iac-storage-automation

Infra-as-Code examples with Ansible and Terraform for Dell Technologies storage platforms
HCL
28
star
26

iDRAC-Telemetry-Reference-Tools

Reference toolset for PowerEdge telemetry metric collection and integration with analytics and visualization solutions.
Go
28
star
27

ansible-unity

Ansible Modules for Dell Unity
Python
26
star
28

dell-csi-operator

The Dell CSI Operator is no longer actively maintained or supported. Dell CSI Operator has been replaced with Dell CSM Operator (https://github.com/dell/csm-operator).
Go
26
star
29

csi-powermax

CSI Driver for Dell PowerMax
Go
25
star
30

csm-operator

Go
24
star
31

ansible-vxrail

Python
23
star
32

ansible-powerflex

Ansible Modules for Dell PowerFlex
Python
22
star
33

OpenManage-PowerShell-Modules

PowerShell
20
star
34

csi-baremetal-operator

Go
19
star
35

python-powerflex

Python library for PowerFlex
Python
19
star
36

iDRAC-Telemetry-Scripting

Python scripts for configuring iDRAC Telemetry and processing Telemetry reports.
Python
18
star
37

python-powerstore

Python library for Dell PowerStore
Python
17
star
38

biosdevname

Udev helper for naming devices per BIOS names
Shell
17
star
39

powerprotect-data-manager

A repo for keeping PowerProtect automation enablers
Python
16
star
40

helm-charts

The source for Dell Helm charts.
Smarty
16
star
41

csm-docs

A repo for the documentation for Dell Container Storage Modules for all Dell storage arrays
JavaScript
16
star
42

terraform-provider-powerstore

Terraform Provider for Dell EMC PowerStore
Go
15
star
43

gopowerstore

Go library for PowerStore APIs
Go
15
star
44

karavi-metrics-powerflex

Metrics for PowerFlex is part of Dell Container Storage Modules (CSM) for Observability and provides Kubernetes administrators insight into storage usage and performance for containerized applications using Dell products
Go
15
star
45

common-github-actions

Repository to hold GitHub Actions for Dell repos
Shell
14
star
46

gofsutil

Fork of the Go library for filesystem related operations
Go
14
star
47

terraform-provider-powerscale

Terraform Provider for Dell PowerScale
Go
13
star
48

karavi-resiliency

A Kubernetes pod monitor for safely terminating pods with persistent volumes in case of node failures
Go
13
star
49

license-scanner

A tool to check for potential open source licensing problems.
Python
12
star
50

karavi-topology

Karavi Topology provides Kubernetes administrators insight into the Kubernetes storage topology as it relates to Dell products
Go
12
star
51

ansible-isilon

Ansible modules for Dell EMC Isilon
Python
12
star
52

ansible-vplex

Ansible modules for Dell EMC VPLEX
Python
11
star
53

cosi

COSI Driver for Dell ObjectScale
Go
11
star
54

csm-replication

Dell Container Storage Modules (CSM) for Replication aims at extending native Kubernetes functionality to support Disaster Recovery workflows by utilizing storage array based replication.
Go
11
star
55

karavi

Project Karavi aims at improving the observability, usability and data mobility for stateful applications with Dell Technologies Storage portfolio.
11
star
56

gopowerscale

Go library for Dell PowerScale
Go
11
star
57

terraform-provider-powerflex

Terraform Provider For Dell PowerFlex
Go
10
star
58

firmware-tools

Firmware Tools framework
Python
10
star
59

karavi-authorization

Karavi Authorization is part of the Karavi open source suite of Kubernetes storage enablers for Dell products. Karavi Authorization provides Storage & Kubernetes administrators the ability to apply RBAC for Dell CSI Drivers.
Go
10
star
60

sassist

Dell SupportAssist log collector for Linux
Shell
9
star
61

clarity-atoms

Preact Components based on Dell Clarity
TypeScript
9
star
62

karavi-observability

Dell Container Storage Modules (CSM) for Observability covers Kubernetes storage features and functionality for Dell storage portfolio. CSM for Observability provides standardized approaches for storage observability.
Shell
9
star
63

cert-csi

Unified CSI driver​ testing tool
Go
8
star
64

gopowermax

Go library for PowerMax APIs
Go
8
star
65

cpuinfo

Tool to display/decode CPUINFO
C
8
star
66

goscaleio

Go
8
star
67

thunderbolt-dkms

DKMS Package for the new thunderbolt driver
C
8
star
68

recite

Interactive WS-Man Scripting Environment
Python
7
star
69

jlt

Johnson-Lindenstrauss transform (JLT), random projections (RP), fast Johnson-Lindenstrauss transform (FJLT), and randomized Hadamard transform (RHT) in python 3.x
Python
7
star
70

terraform-provider-ome

Terraform provider for OpenManage Enterprise
Go
7
star
71

gobrick

Go library for CSI drivers
Go
7
star
72

terraform-provider-apex

Go
7
star
73

EUCTechHub

General Scripts for VMware Workspace ONE, Microsoft MEM, or general PowerShell with whitepapers and BLOG postings
PowerShell
6
star
74

firmware-extract

firmware-extract
Python
6
star
75

goiscsi

A portable Go module for iSCSI operations.
Go
6
star
76

gounity

GO library for Dell Unity
Go
6
star
77

powerstore-metrics-exporter

Go
6
star
78

edac

Tool to map DIMMs to EDAC channel/dimm
Perl
6
star
79

dell-csi-extensions

Makefile
6
star
80

csm-metrics-powerstore

Metrics for PowerStore is part of Dell Container Storage Modules (CSM) for Observability and provides Kubernetes administrators insight into storage usage and performance for containerized applications using Dell PowerStore
Go
6
star
81

firmware-addon-dell

Firmware Tools plugin for Dell systems
Python
6
star
82

name_eths

Names ethernet devices based on physical server layout
Shell
5
star
83

Dell-Gateway-5000-IO-Tool

Dell Edge Gateway 5000 Series I/O Utility
C
5
star
84

ansible-datadomain

Ansible collection for DataDomain
Python
5
star
85

csm-logcollector

Go
5
star
86

efibootmgr

Historical: Now hosted at https://github.com/rhinstaller/efibootmgr
C
5
star
87

iDRAC-SEKM-Scripting

Dell Secure Enterprise Key Manager (SEKM) python scripts for configuring complete iDRAC SEKM solution.
Python
5
star
88

lctool

lctool
Shell
4
star
89

ansible-vxrail-utility

Python
4
star
90

csi-volumegroup-snapshotter

csi-volumegroup-snapshotter controller to support crash-consistent operations for snapshots of group of volumes
Go
4
star
91

terraform-provider-powermax

Terraform Provider for Dell PowerMax
Go
4
star
92

thinos-electron

Build cross-platform desktop apps with JavaScript, HTML, and CSS
C++
4
star
93

csi-baremetal-scheduling

Go
4
star
94

goobjectscale

Go library for Dell EMC ObjectScale
Go
4
star
95

ubuntu-fid

Ubuntu FID development (historical)
SourcePawn
4
star
96

dell-livecd-config

dell-livecd-config
Shell
3
star
97

osp-integration

Red Hat OpenStack Platform integration files.
3
star
98

ledmon

ledmon Debian packaging
3
star
99

omivv

Scripting collaterals leveraging the REST API for Open Manage integrations to VMWare vCenter
Python
3
star
100

dell-repo-tools

Tools to make linux.dell.com/repo
Python
3
star