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.18.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.18-py3-none-any.whl (62.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: oswizard-0.1.18.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.18.tar.gz
Algorithm Hash digest
SHA256 6871b6902fcc45b478e1f1a17d1ff88197f944925a3341d1165b4aee997869a6
MD5 48cf796c9a094658bc381b354154d222
BLAKE2b-256 04e71da32b8a2dc64ffe2820a3f7e54f8cf1b089cf1ce046900dd02dc5dfc376

See more details on using hashes here.

Provenance

The following attestation bundles were made for oswizard-0.1.18.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.18-py3-none-any.whl.

File metadata

  • Download URL: oswizard-0.1.18-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.18-py3-none-any.whl
Algorithm Hash digest
SHA256 6327c0de06a079551da7a7df671a5d9eff94753a2a7f46b3e0c9e1d5cd64ae0d
MD5 12c4bec45c17301667b72f48c985f189
BLAKE2b-256 a63a509583077f3504cadfb9ead1647a6dc49b9ecf5457de05283043667e0792

See more details on using hashes here.

Provenance

The following attestation bundles were made for oswizard-0.1.18-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