Skip to content

Releases: djsincla/GroundZero

GroundZero 0.11.3

Choose a tag to compare

@djsincla djsincla released this 29 Oct 15:44

gz-hwreport behaves itself in Windows PowerShell.

Fixed

  • No more red NativeCommandError on every run. The "Reading ..." progress lines went to stderr, and
    Windows PowerShell 5.1 (the ISE, or a script with 2>&1) shows anything there as an error, even when every
    server was read. Progress now goes to stdout, so stderr only carries servers that couldn't be read. This is
    in both the Node.js and Python versions, and the guide explains the message for anyone on an older copy.
  • The progress line ended in a Unicode ellipsis that the Windows console garbled into …. Everything printed
    to the console is now plain ASCII, and a test holds it to that.

GroundZero 0.11.2

Choose a tag to compare

@djsincla djsincla released this 09 Oct 17:54

The Node.js hardware report now comes with its guide.

Added

  • A guide for gz-hwreport (Node.js). node/README.md covers what you need, how to run it, every option,
    the output files, exit codes, and what to check when a BMC won't answer.
    • It ships with the file on each release, in gz-hwreport-node.zip and as gz-hwreport-README.md.
    • A test makes sure every option the tool accepts is in the guide.

Fixed

  • The Node.js gz-hwreport accepts a BMC on another port (192.0.2.5:8443) and IPv6 in brackets, as the
    Python version does.

GroundZero 0.11.1

Choose a tag to compare

@djsincla djsincla released this 08 Oct 15:52

The hardware report as one Node.js file.

Added

  • gz-hwreport for Node.js: the hardware report as one dependency-free file (gz-hwreport.mjs, Node 20+),
    attached to each release. It's a port of the Python collector, and CI replays the same recorded server
    through both and fails if their reports differ in any field.

GroundZero 0.11.0

Choose a tag to compare

@djsincla djsincla released this 08 Oct 02:08

Configure storage from profiles, a full hardware inventory, reports, and gz-hwreport: a hardware report with nothing to set up.

Added

  • gz-hwreport: a standalone hardware report, with nothing to set up. It reads one or more BMCs
    over Redfish (read-only) and writes a self-contained HTML page and a JSON file per server.
    • With several servers it adds a comparison page with differences highlighted.
    • Each release has a single-file executable for Linux (x86_64, arm64), macOS (arm64) and Windows. No
      Python needed.
    • groundzero hwreport is the same tool inside GroundZero. See "Just want a hardware report?" in the
      install guide.
  • Full hardware inventory: Discover hardware now also reads the following, and the Overview tab shows
    all of it:
    • every installed firmware version (BIOS, BMC, controllers, NICs, drives, power supplies, backplanes)
    • each memory module
    • the network adapters with their firmware
    • PCIe devices: storage controllers and HBAs, NICs, accelerators
    • power supplies
    • each drive's firmware, and the service tag
  • Reports: a server's hardware and configuration on one printable page, and a cluster report that
    puts the members side by side and flags what differs (BIOS, BMC and every firmware version, model,
    memory, drives, adapters, power supplies, OS).
    • Download a report as CSV (one row per component, or one row per compared item for a cluster) or JSON.
    • Built from what GroundZero already recorded: nothing is read from the servers.
  • Configure storage: apply a storage profile covering RAID volumes, controller mode (RAID, HBA,
    enhanced HBA), drive state (RAID-capable or passed straight through) and global hot spares.
    • Profiles are rules, not drive ids, so one fits every server of a kind: "on the boot card, one RAID1
      of two SSDs, the boot volume"; "on the PERC, a RAID5 of three SAS SSDs and one hot spare".
    • Save a server's layout as a profile from its Storage tab, or write one on the Config sets page.
    • The plan comes first. It lists every change in the order it's applied, marks the ones that lose
      data, and says plainly why a profile can't be applied (not enough drives, a mode that can't hold
      volumes, no matching controller).
    • The boot volume the OS runs from is never deleted unless you tick the box that allows it.
    • The layout is read again before anything is written, and the run stops if it changed since Read
      storage.
    • Changes that wait for a reset share one restart. The layout is read back until the profile is met,
      and the boot volume recorded afterwards is the one the OS install uses.
    • Specs can pick a profile for their Configure storage step. Once applied, the step goes back to ready
      if the layout drifts from the profile.
    • On the command line: groundzero storage-profile list|show|save|capture|plan|delete.
    • Tested against the simulator only (it now models PERC volumes, drive conversion, spares and mode
      changes). On the lab R740xd the BOSS holds the running ESXi and the PERC has no drives.

GroundZero 0.10.0

Choose a tag to compare

@djsincla djsincla released this 07 Oct 20:20

BIOS profiles: capture, edit or import saved BIOS settings, and apply them with Configure BIOS.

Added

  • BIOS profiles: saved BIOS settings, checked against what the server's BIOS accepts. Configure BIOS
    applies them: only the settings that differ are written, with one reboot, and read back afterwards.
    • Three ways to make one:
      • Capture from a server's current settings. By default it keeps the choices (lists, numbers,
        on/off) and leaves out per-server text such as asset tags and iSCSI names.
      • Edit in GroundZero, from the BIOS's own attribute registry: each setting's name, allowed
        values, bounds and the menu it sits in.
      • Import a file: a plain {attribute: value} map, or a Dell Server Configuration Profile export.
    • The registry is read from the BMC once (read-only) and cached per model and BIOS version.
    • Values are checked before anything is saved. Read-only settings and BIOS passwords never go in a
      profile.
    • A profile's own value wins over the Holodeck basics (virtualization, IOMMU, UEFI) for any attribute
      both touch.
    • The Configure BIOS dialog shows what a profile would change before you confirm. Specs can pick a
      profile for their Configure BIOS step, which is "not needed" once the server matches it.
    • On the command line: groundzero bios-profile list|show|capture|import|delete.

Changed

  • A task that judges itself from its inputs (Configure BIOS) goes back to ready when they move on, for
    example after a BIOS reset or a profile change, instead of staying done.

Fixed

  • Recorded test fixtures no longer redact BIOS settings whose names sound sensitive (SerialComm,
    SubNumaCluster): values the BIOS registry lists as choices are kept.
  • Job diagnostics now redact BIOS password attributes such as SetupPassword.
  • A BMC that doesn't answer a direct request (for example reading its BIOS registry) is a 502 bmc_error
    naming what failed, not a bare 500.

GroundZero 0.9.0

Choose a tag to compare

@djsincla djsincla released this 07 Oct 16:52

Specs: pick the jobs each server or cluster runs, and run them as one.

Added

  • Specs: pick the jobs a server or a cluster runs, each with its saved settings (/specs).
    • Steps are kept in pipeline order and checked when you save: the task exists, its settings are valid,
      and the images, config sets and profiles they point at exist. Secrets aren't allowed: they stay in
      profiles and config sets.
    • Text settings may use {host} or {hostname}, filled in per server. A Deploy OS step with no config
      set uses the cluster's.
    • A cluster's spec applies to every member, and a server's own spec overrides it.
    • With a spec, the pipeline's next step follows only the spec's jobs. The rest stay runnable by hand.
  • Runs: run a server's spec as one, approved once with a typed phrase (run <spec> on <server>)
    after a preview.
    • The preview shows which steps run, which are skipped (done already, or not needed) and what the
      destructive ones change.
    • Steps start one after another and the run stops at the first failure. Each step still goes through
      its own checks, and the run's approval stands in for each step's own phrase.
    • Cluster runs (run cluster <name>) start every member at once; one failing doesn't stop the others.
    • In the web UI: a Specs page with an editor that shows what each picked job needs and which earlier
      job makes it, a spec bar and run panel on the host page, and runs on the cluster page.
    • On the command line: groundzero spec save|list|show|assign|delete and groundzero run-spec.

GroundZero 0.8.0

Choose a tag to compare

@djsincla djsincla released this 07 Oct 06:02

Read the server's storage, and install to the boot volume it finds.

Added

  • Read storage: a new hardware task that reads the controllers, RAID volumes and drives over Redfish
    (read-only) and finds the boot volume the OS installs to. On a Dell with a BOSS card that's the BOSS
    RAID1, and the installer finds it as DELLBOSS.
    • A new Storage tab on the host page shows what it read: the boot volume, then each controller with
      its volumes and drives.
  • Install to the boot volume: a config set's install disk can be boot-volume, which installs to the
    boot volume Read storage found. It works without a running OS, so a blank server installs to the right
    disk. The OS deploy tasks now list the storage layout as an input.

GroundZero 0.7.0

Choose a tag to compare

@djsincla djsincla released this 07 Oct 04:27

Configure BIOS moves up behind Discover, and steps aside when the BIOS is already right.

Changed

  • Configure BIOS now comes straight after Discover hardware, before Preflight, so Preflight passes the
    first time.
    • When the inventory shows the BIOS already right, the task is marked not needed (with what was
      checked) and nothing is run or recorded. A later inventory showing a setting off makes it ready again.
    • When a setting is off, Configure BIOS becomes the recommended next step.
  • API: a new task state not_needed with a not_needed reason, and a conditional flag on tasks that
    are recommended only when needed.

GroundZero 0.6.0: cluster mode

Choose a tag to compare

@djsincla djsincla released this 07 Oct 03:51

Cluster mode: servers named after their BMC, addresses from a pool, and an optional DNS check.

Added

  • Clusters: an ESXi config set, an IP range, a DNS domain and a naming rule (/clusters).
    • Adding a server names it after its BMC (prefix or suffix stripped, e.g. idrac-esx01 becomes esx01)
      and gives it the next free address in the range. Both are written as its per-host values.
    • Inventory now reads the BMC's own hostname.
  • Verify DNS: asks the cluster's own DNS servers (never the local resolver) for the forward and reverse
    records and names what does not match.
    • It is an option. A cluster with "Require a passing DNS check before install" set blocks its members'
      OS install until it passes; skip_dns_check overrides that.
  • UI: a Clusters page with members, derived names and addresses, DNS status and Verify DNS.
  • Simulator: a configurable BMC hostname and a static DNS map.

GroundZero 0.5.0: Configure BIOS

Choose a tag to compare

@djsincla djsincla released this 07 Oct 03:21

Configure BIOS: the settings Holodeck needs, set over Redfish with one reboot.

Added

  • Configure BIOS: turns on processor virtualization (VT-x/AMD-V), the IOMMU (VT-d/AMD-Vi) and UEFI
    boot mode where the inventory shows them off.
    • Only what is wrong is changed, keeping the BIOS's own value style.
    • It writes pending settings to Bios/Settings with apply-on-reset, restarts once, verifies by reading
      the BIOS back, and re-reads the inventory.
    • It needs the typed phrase configure bios <host> whenever something will change.
    • Preflight's BIOS checks now point at it.
  • Simulator: pending BIOS settings applied on reset, and the faults bios-wrong and bios-not-applied.