Skip to main content

Automated OS provisioning and installation orchestrator

Project description

OSWizard CLI (Prototype)

Release

Lint CI Code style: black Ruff

CI Code style: black Ruff

Quickstart

# install deps
poetry install     # or: pip install -e .

# init workspace
poetry run osw init ./osw-work

# add a machine (fake for now)
poetry run osw machines add --name lab-01 --host 10.0.0.50 --user ADMIN --password PASS

# submit a job
poetry run osw jobs submit --machine lab-01 --template ubuntu-24.04 \\
  --var hostname=lab-01 --var ssh_key="$(cat ~/.ssh/id_rsa.pub 2>/dev/null || echo test-key)"

# run it once (advances states; IPMI is stubbed)
poetry run osw jobs run --id <job-id-from-list>

# watch logs (static snapshot for now)
poetry run osw jobs watch --id <job-id-from-list>

Notes

  • This prototype does not touch real hardware yet; IPMI commands are stubbed.
  • Next steps: add worker loop, retries, real ipmitool, switch Ubuntu to Autoinstall.

🚀 OSWizard Product Roadmap (2025 Q1–Q3)

Quarter Focus Area Key Milestones
Q1 2025 🧩 Core Stability & Validation - Full RAID & partition schema validation
- Redfish & IPMI integration (Dell, HP, Lenovo, Supermicro)
- Secure local workspace persistence
Q2 2025 ⚙️ Portal & User Experience - Web dashboard (React-based) for deployments
- IPMI console view (no Java)
- Networking setup during install (custom IP & subnet)
- Enhanced logging & diagnostics API
Q3 2025 ☁️ Enterprise & Premium+ Expansion - Power control actions (Power On/Off, Reset, Reboot) from portal
- Multi-node batch provisioning
- Tenant-ready templates for hosting providers
- CI/CD-backed test suite & deployment automation
Beyond Q3 🌐 AI & Smart Automation - Predictive install validation (AI-aided)
- Hardware failure predictions
- Workflow orchestration between data centers

🚀 OSWizard Product Roadmap (Nov 2025 → Feb 2026)

Quarter / Phase Focus Area Key Milestones
Nov–Dec 2025 🧩 Core Finish & Integrations Custom partition profiles (LVM/RAID) schema + renderers · Ventoy Rescue Mode (iDRAC first) · VirtualMedia slot probing (real impl) · API v1 scaffold (Jobs submit/status)
Jan 2026 ⚙️ WHMCS + API + Portal Alpha WHMCS module (Reinstall/Rescue/Power) via REST · API v1 power/rescue endpoints · Portal Alpha: FastAPI backend + Next.js UI (live job logs)
Feb 2026 🚀 Launch Readiness Docs site (MkDocs) + ARCHITECTURE/DEVELOPER guides · CI release pipeline (tagged builds / optional PyPI) · GA hardening & partner onboarding

🧱 Technical Highlights (Merged & Updated)

  • ✅ IPMI / Redfish / Supermicro with vendor autodetect

  • 🌐 Custom IP assignment during installation

  • 🧩 Custom partition profiles (plain/LVM/RAID) → Kickstart / Autoinstall / cloud-init renderers

  • 🛟 Ventoy-based Rescue Mode (one-shot boot with TTL)

  • 🔌 WHMCS module + REST API v1 (jobs, power, rescue)

  • 🖥️ HTML5 console (SOL / noVNC) + power control — no Java

  • 🔒 Secure local workspace with per-job cleanup + retention

  • 🧪 CI matrix (Ubuntu + Alma) + lint/format/test badges (GitHub Actions)

  • 🧰 Local HTTP per-job server with auto-cleanup

  • 🧩 Designed for Hosting Providers, MSPs, and Enterprises

  • ✅ IPMI / Redfish / Supermicro support

  • 🌐 Custom IP assignment during installation

  • 🖥️ Browser-based console view (no Java)

  • ⚡ Power control (Premium+): on/off/reset/reboot

  • 🔒 Secure local workspace with per-job cleanup

  • 🧰 CI-ready with lint/test badges and GitHub Actions

  • 🧩 Designed for Hosting Providers, MSPs, and Enterprises


Launch Target: 2025 Q3
Goal: Simplify bare-metal OS deployment — no Java, no pain, full automation.

OSWizard Phase 3–4 Notes

  • WireGuard: see docs/wireguard-topology.md for peer config, firewall, and verification steps.
  • Ventoy Real Exec: hardened executor at /opt/oswizard/patches/ventoy_exec.sh with Python wrapper oswizard/ventoy_exec.py.
  • Vendor Autodiscovery: run osw_phase4_vendor_refresh() to write /etc/oswizard/manifest.json.
  • Session Cleanup: osw-cleanup --sweep or --job <id>, timer oswizard-cleanup.timer, config /etc/oswizard/cleanup.json.

CI Status & Summary

Lint Tests

Phase 4 Highlights

  • Ventoy Executor – real exec wrapper & patch scripts
  • Vendor Autodiscovery – manifest writer & logs
  • Session Cleanup Daemon – sweep + per-job timer
  • HTTP Auto-Stop – per-job HTTP shutdown before cleanup
  • CI & Tests – lint + pytest pipeline (green)

Integration Tests (Ventoy)

  • Ventoy Rescue Mode directory & host-script wrappers (Step 1)

🔧 Rescue Mode (directory payload)

Add to your job manifest:

rescue:
  enabled: true
  payload_dir: /opt/oswizard/rescue
  ttl_minutes: 30

Quick local smoke (directory-mode stub):

mkdir -p /opt/oswizard/rescue/scripts
printf '#!/usr/bin/env bash\necho RESCUE_OK\n' >/opt/oswizard/rescue/scripts/rescue.sh
chmod +x /opt/oswizard/rescue/scripts/rescue.sh
python -c "import oswizard.rescue as r; r.apply_rescue_patch('/opt/oswizard/rescue', ttl_minutes=5)"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oswizard-0.1.21.tar.gz (51.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oswizard-0.1.21-py3-none-any.whl (62.7 kB view details)

Uploaded Python 3

File details

Details for the file oswizard-0.1.21.tar.gz.

File metadata

  • Download URL: oswizard-0.1.21.tar.gz
  • Upload date:
  • Size: 51.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for oswizard-0.1.21.tar.gz
Algorithm Hash digest
SHA256 b4c79fb33cb5519a5b9fa38aad74e9dea15db3d3df0eec7b8d705d8869f5e473
MD5 294d3bff796ba0426226789c3ad2e334
BLAKE2b-256 6bc3f521d2408b805891f9322831b40950a2bc2ca399861752954b7203c695df

See more details on using hashes here.

Provenance

The following attestation bundles were made for oswizard-0.1.21.tar.gz:

Publisher: publish.yml on oswiz-alt/oswizard-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oswizard-0.1.21-py3-none-any.whl.

File metadata

  • Download URL: oswizard-0.1.21-py3-none-any.whl
  • Upload date:
  • Size: 62.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for oswizard-0.1.21-py3-none-any.whl
Algorithm Hash digest
SHA256 a80b15d9addaf4626f085f9de7a1fa66b8f82d9cac8bc8aa072c07a5aaf18172
MD5 c42021c12c3e70d75ed88bf0579090dd
BLAKE2b-256 0b0bd3831689284e824b8bbbf3da72a186033e37d0396c9845a8146637d47ff1

See more details on using hashes here.

Provenance

The following attestation bundles were made for oswizard-0.1.21-py3-none-any.whl:

Publisher: publish.yml on oswiz-alt/oswizard-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page