Last active
June 2, 2025 07:35
-
-
Save jlengelbrecht/380df457eaf5321e217c5515a08d00d5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| # --------------------------------------------------------------------------- | |
| # install-ism54_pve.sh – RACADM 11.0 + iSM 5.4.0.0 for Proxmox 8 (root only) | |
| # --------------------------------------------------------------------------- | |
| set -euo pipefail | |
| # --------------------------- CONSTANTS ------------------------------------- | |
| DELL_KEY_URL=https://linux.dell.com/repo/pgp_pubkeys/0x1285491434D8786F.asc | |
| OPENMANAGE_REPO=http://linux.dell.com/repo/community/openmanage/11000/jammy | |
| ISM_REPO=http://linux.dell.com/repo/community/openmanage/iSM/5400/bullseye | |
| BULLSEYE_BASE=http://deb.debian.org/debian | |
| BULLSEYE_SEC=http://security.debian.org/debian-security | |
| EXTRA_PKGS=(usbutils curl libcurl4 libssh2-1 openssl ca-certificates) | |
| ISM_PKGS=(dcism dcism-osc) | |
| RACADM_PKG=srvadmin-idracadm8 | |
| GPG_DIR=/etc/apt/trusted.gpg.d | |
| SRC_DIR=/etc/apt/sources.list.d | |
| PIN_DIR=/etc/apt/preferences.d | |
| DELL_KEY=${GPG_DIR}/dell-apt-key.gpg | |
| # --------------------------- HELPERS --------------------------------------- | |
| log() { printf '\e[1;34m[+] %s\e[0m\n' "$*"; } | |
| warn() { printf '\e[1;33m[!] %s\e[0m\n' "$*"; } | |
| die() { printf '\e[1;31m[x] %s\e[0m\n' "$*" >&2; exit 1; } | |
| tee_cfg() { tee "$1" >/dev/null; } | |
| # --------------------------- 1. Dell key ----------------------------------- | |
| log "Importing Dell GPG key" | |
| mkdir -p "$GPG_DIR" | |
| curl -fsSL "$DELL_KEY_URL" | gpg --dearmor -o "$DELL_KEY" | |
| # --------------------------- 2. Repos -------------------------------------- | |
| log "Adding APT sources" | |
| tee_cfg "${SRC_DIR}/dell-openmanage.list" <<EOF | |
| deb [signed-by=${DELL_KEY}] ${OPENMANAGE_REPO} jammy main | |
| EOF | |
| tee_cfg "${SRC_DIR}/dell-ism.list" <<EOF | |
| deb [signed-by=${DELL_KEY}] ${ISM_REPO} bullseye main | |
| EOF | |
| tee_cfg "${SRC_DIR}/debian-bullseye.list" <<EOF | |
| deb ${BULLSEYE_BASE} bullseye main | |
| deb ${BULLSEYE_SEC} bullseye-security main | |
| EOF | |
| # --------------------------- 3. Pinning ------------------------------------ | |
| log "Setting APT pin priorities" | |
| tee_cfg "${PIN_DIR}/00-ism-block-all.pref" <<'EOF' | |
| Package: * | |
| Pin: release n=bullseye | |
| Pin-Priority: -1 | |
| EOF | |
| tee_cfg "${PIN_DIR}/01-ism-allow.pref" <<'EOF' | |
| Package: libssl1.1 dcism dcism-osc ismcore ismconfig | |
| Pin: release n=bullseye | |
| Pin-Priority: 501 | |
| EOF | |
| # --------------------------- 4. Install ------------------------------------ | |
| log "apt update" | |
| apt-get update -qq | |
| log "Installing libssl1.1" | |
| apt-get install -y -t bullseye libssl1.1 | |
| log "Installing runtime dependencies" | |
| apt-get install -y "${EXTRA_PKGS[@]}" | |
| log "Installing iSM 5.4 and RACADM" | |
| apt-get install -y -t bullseye "${ISM_PKGS[@]}" | |
| apt-get install -y "${RACADM_PKG}" | |
| # --------------------------- 5. Service enable ----------------------------- | |
| log "Enabling & starting iSM services" | |
| systemctl daemon-reload | |
| for svc in dcismeng dcismcomponents dcismetl; do | |
| if systemctl list-unit-files | grep -q "^${svc}.service"; then | |
| systemctl enable --now "${svc}.service" | |
| fi | |
| done | |
| # --------------------------- 6. Hold libssl1.1 ----------------------------- | |
| if ! dpkg --get-selections | grep -qE '^libssl1.1\s+hold'; then | |
| log "Holding libssl1.1 to prevent accidental removal" | |
| apt-mark hold libssl1.1 | |
| fi | |
| # --------------------------- 7. Verify ------------------------------------- | |
| sleep 5 # give engine a moment | |
| ISMCLI=/opt/dell/srvadmin/iSM/bin/dcismcfg | |
| if $ISMCLI --getismstatus 2>/dev/null | grep -q "service is running and connected"; then | |
| log "iSM is running and connected ✔" | |
| exit 0 | |
| else | |
| systemctl status dcismeng --no-pager | |
| $ISMCLI --getismstatus || true | |
| die "iSM did not start correctly" | |
| fi |
Author
It works on the Dell T440 but did not automatically start the service, so I did: systemctl start dcismeng.service and it works with no problem! 10/10
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This script will install IDSM 5.4.0.0 on proxmox 8.X it has been tested against Dell R740xd servers. I am not sure if it can be repurposed to work with other dell servers. Installing on anything but a dell R740 or R740xd will require testing.
To install run the following in a root shell on your proxmox server.
curl -sSL https://gist.githubusercontent.com/jlengelbrecht/380df457eaf5321e217c5515a08d00d5/raw/install-ism54_hold.sh \ | sudo bash