Automated OS provisioning and installation orchestrator
Project description
OSWizard CLI (Prototype)
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.mdfor peer config, firewall, and verification steps. - Ventoy Real Exec: hardened executor at
/opt/oswizard/patches/ventoy_exec.shwith Python wrapperoswizard/ventoy_exec.py. - Vendor Autodiscovery: run
osw_phase4_vendor_refresh()to write/etc/oswizard/manifest.json. - Session Cleanup:
osw-cleanup --sweepor--job <id>, timeroswizard-cleanup.timer, config/etc/oswizard/cleanup.json.
CI Status & Summary
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)
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4c79fb33cb5519a5b9fa38aad74e9dea15db3d3df0eec7b8d705d8869f5e473
|
|
| MD5 |
294d3bff796ba0426226789c3ad2e334
|
|
| BLAKE2b-256 |
6bc3f521d2408b805891f9322831b40950a2bc2ca399861752954b7203c695df
|
Provenance
The following attestation bundles were made for oswizard-0.1.21.tar.gz:
Publisher:
publish.yml on oswiz-alt/oswizard-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oswizard-0.1.21.tar.gz -
Subject digest:
b4c79fb33cb5519a5b9fa38aad74e9dea15db3d3df0eec7b8d705d8869f5e473 - Sigstore transparency entry: 698716850
- Sigstore integration time:
-
Permalink:
oswiz-alt/oswizard-cli@cf8f9d619770ea0756938e230379a903fb03b60d -
Branch / Tag:
refs/tags/v0.1.21 - Owner: https://github.com/oswiz-alt
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cf8f9d619770ea0756938e230379a903fb03b60d -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a80b15d9addaf4626f085f9de7a1fa66b8f82d9cac8bc8aa072c07a5aaf18172
|
|
| MD5 |
c42021c12c3e70d75ed88bf0579090dd
|
|
| BLAKE2b-256 |
0b0bd3831689284e824b8bbbf3da72a186033e37d0396c9845a8146637d47ff1
|
Provenance
The following attestation bundles were made for oswizard-0.1.21-py3-none-any.whl:
Publisher:
publish.yml on oswiz-alt/oswizard-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oswizard-0.1.21-py3-none-any.whl -
Subject digest:
a80b15d9addaf4626f085f9de7a1fa66b8f82d9cac8bc8aa072c07a5aaf18172 - Sigstore transparency entry: 698716852
- Sigstore integration time:
-
Permalink:
oswiz-alt/oswizard-cli@cf8f9d619770ea0756938e230379a903fb03b60d -
Branch / Tag:
refs/tags/v0.1.21 - Owner: https://github.com/oswiz-alt
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cf8f9d619770ea0756938e230379a903fb03b60d -
Trigger Event:
push
-
Statement type: