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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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