Skip to content

AlexSvobo/SysAdminArena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SysAdmin Arena

SysAdmin Arena is a realistic IT support simulation built on a live domain lab and osTicket. Instead of static exercises, it generates ongoing help desk incidents, converts them into tickets, and verifies fixes before work is considered complete. If remediation fails validation, tickets are automatically reopened or marked for follow-up.

You play as IT admin Taylor Nguyen on CLIENT01: work the osTicket queue, remote into systems, resolve incidents, and confirm fixes through automated verification.

What This Is

  • A multi-VM enterprise-style lab (domain controller, member server, client, ticketing platform)
  • A ticket-driven IT simulator that maps infrastructure issues to actionable support tasks
  • A repeatable workflow: diagnose -> fix -> verify -> repeat

Core Features

  • Automated VM provisioning: DC01, MEMBERSRV01, CLIENT01, SERVICES01 (still testing)
  • SERVICES01 hosts osTicket, automation endpoint, and plugin system
  • Template-driven incidents across:
    • Active Directory / accounts
    • DNS / DHCP
    • Group Policy
    • File services
    • System services
  • Generator + verifier loop with state tracking and queue refill

Gameplay Mechanics

  • Verifier-gated lifecycle: tickets stay closed only when technical checks pass
  • Automatic reopen flow: failed fixes trigger reopen or follow-up with diagnostic context
  • Hint workflow: /hint (or hint) in a ticket thread triggers automated assistance
  • Escalating hints: directional guidance, then failing checks, then runbook-level guidance
  • Continuous workload: queue auto-refills to keep gameplay flow active

Architecture Diagram

SysAdmin Arena architecture

Requirements

Default VM Allocation

  • CPU: 8 vCPU total (2 per VM)
  • RAM: 24 GB total (8 + 6 + 6 + 4)
  • Disk (virtual): 320 GB total (100 + 80 + 80 + 60)

Proven Lower-Footprint Profile

  • RAM: 18 GB total (4 + 4 + 6 + 4)
  • Disk (virtual): 260 GB total (60 + 60 + 80 + 60)

VM disks are thin-provisioned VDI (dynamic). Listed sizes are capacity ceilings, not immediate host consumption.

Host Sizing Profiles

Profile CPU RAM Free SSD Use Case
Low-footprint 4-6 cores 18-24 GB 120-180 GB Tuned VMs, standard gameplay
Default 6 cores 24-32 GB 180+ GB Better responsiveness
Strict target 8+ cores 32-48 GB 220-350+ GB Full strict runs plus snapshots

Per-VM Minimums

  • SERVICES01 (Ubuntu/osTicket): 1 vCPU, 2 GB RAM for light testing
  • MEMBERSRV01: 1 vCPU, 2-4 GB RAM
  • DC01 (AD/DNS/DHCP): 2 vCPU, 4 GB RAM minimum
  • CLIENT01 (Windows 11): 4 GB RAM minimum, 6 GB recommended

Known-Good Tuned Profile

  • DC01: 4 GB RAM, 60 GB virtual disk
  • MEMBERSRV01: 4 GB RAM, 60 GB virtual disk
  • CLIENT01: 6 GB RAM, 80 GB virtual disk
  • SERVICES01: 4 GB RAM, 60 GB virtual disk

Preflight Check

powershell -ExecutionPolicy Bypass -File C:\SysAdminArena\bootstrap\Test-Prereqs.ps1 -RequireIsos -AsJson

Quick Start (First Run)

  1. Place the repo at C:\SysAdminArena and open PowerShell as Administrator.

  2. Ensure ISO files exist in C:\SysAdminArena\isos:

  • WinServer2022.iso
  • Windows11.iso
  • Ubuntu2204.iso
  1. If needed, configure ISO paths:
powershell -ExecutionPolicy Bypass -File C:\SysAdminArena\bootstrap\Initialize-Config.ps1 -WinServerIso "C:\Path\To\WinServer2022.iso" -Win11Iso "C:\Path\To\Windows11.iso" -UbuntuIso "C:\Path\To\Ubuntu2204.iso"
  1. Run one-click strict provisioning:
powershell -ExecutionPolicy Bypass -File C:\SysAdminArena\bootstrap\Invoke-OneClickStrict.ps1 -ServicesOsTicketDbPassword "ChangeMe-StrongPassword"
  1. Complete osTicket setup on SERVICES01:

http:///osticket/setup/

  1. Rerun step 4 to clear remaining blockers.

  2. Start the bridge worker on CLIENT01:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
powershell -ExecutionPolicy Bypass -File C:\SysAdminArena\ticket-engine\bridge\Start-BridgeWorker.ps1 -IntervalSeconds 60
  1. Begin working tickets in osTicket.

Optional: Strict Evidence Mode

powershell -ExecutionPolicy Bypass -File C:\SysAdminArena\bootstrap\Invoke-OneClickStrict.ps1 -ServicesOsTicketDbPassword "ChangeMe-StrongPassword" -RequirePluginEvidence

Safe One-Click Validation (Non-Destructive)

Use this mode to validate orchestration wiring without touching a known-good working lab.

  1. Create a test config copy:
Copy-Item C:\SysAdminArena\config.ps1 C:\SysAdminArena\config.safe-test.ps1 -Force
  1. Run provisioning in safe mode:
powershell -ExecutionPolicy Bypass -File C:\SysAdminArena\bootstrap\Invoke-OneClickProvision.ps1 -ConfigPath C:\SysAdminArena\config.safe-test.ps1 -EnableUnattendedInstall:$false -StartVMs:$false -SkipServices01Automation -SkipServices01ReadinessCheck -CompactReport -ReportPath reports\oneclick-safe-smoke.json -AsJson
  1. Review output in reports\oneclick-safe-smoke.json.

This validates orchestration flow and reporting only. In this mode, readyForTickets can be false by design.

Current State

  • One-click provisioning is partially tested
  • Strict mode generates machine-readable blocker reports and exits non-zero when blockers remain

Reports and Exit Codes

  • Default strict report: reports\oneclick-strict.json
  • JSON output supports CI and automated validation
Exit Code Meaning
0 Ready (readyForTickets = true)
2 Blockers remain

Repository Layout

  • bootstrap: provisioning, orchestration, readiness checks
  • vms: VM definitions and role configuration
  • ticket-engine: bridge worker, endpoint, plugins, templates
  • ad-config: Active Directory seeding and related config
  • docs: runbooks and guides

Key Scripts

  • bootstrap/Invoke-OneClickStrict.ps1
  • bootstrap/Invoke-OneClickProvision.ps1
  • bootstrap/Test-Services01Readiness.ps1
  • bootstrap/Install-Services01Automation.ps1
  • bootstrap/Finalize-TicketReady.ps1
  • vms/setup-all-lab-vms.ps1

Documentation

  • docs/quickstart-one-click.md
  • docs/one-click-repro-blueprint.md

Troubleshooting

  • If unattended install fails, complete VM setup manually and continue.
  • If plugin registration fails, open osTicket Admin -> Manage -> Plugins once, then rerun readiness.
  • If strict plugin evidence fails, perform at least one ticket close or /hint action, then rerun strict mode.

About

Train like real IT ops: fix live AD lab incidents from an osTicket queue where bad closes get reopened and hints adapt to your progress.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors