diff --git a/plans/idea-1-python-rewrite.md b/plans/idea-1-python-rewrite.md index da75469..6c0d9ca 100644 --- a/plans/idea-1-python-rewrite.md +++ b/plans/idea-1-python-rewrite.md @@ -28,7 +28,7 @@ Il punto di ingresso `Invoke-CIJob.ps1` viene sostituito da `invoke_ci_job.py` | Componente PowerShell | Equivalente Python | Note | | ----------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------- | -| `Invoke-Vmrun` (wrapper vmrun.exe) | `subprocess.run([vmrun, '-T', 'ws', ...])` | Identico, gestione `returncode` esplicita. | +| `Invoke-Vmrun` (wrapper `vmrun.exe` su Win / `vmrun` su Linux) | `subprocess.run([vmrun, '-T', 'ws', ...])` | Identico, gestione `returncode` esplicita. Path binario configurabile via env var. | | `New-PSSession` + `Invoke-Command` (WinRM) | `pypsrp` (`pypsrp.client.Client`) o `pywinrm` | **Rischio basso**. `pypsrp` supporta HTTPS self-signed e PSRP nativo. | | `Copy-Item -ToSession / -FromSession` | `pypsrp.client.Client.copy()` / `fetch()` | Throughput simile a WinRM nativo. | | `_Transport.psm1` (ssh.exe / scp.exe) | `paramiko` o `fabric`, oppure subprocess di `ssh`/`scp` | `paramiko` elimina dipendenza da OpenSSH client. | @@ -162,11 +162,12 @@ osservabilità sul codice PS attuale. ## 6. Sinergia con Idee 2 e 3 -- **Idea 2 (host Linux)**: la riscrittura Python è **prerequisito naturale**. - PS 7 su Linux funziona ma `vmrun` non gira nativamente lì (Workstation è - Windows-only; serve VMware Player Linux o `ovftool`). Python rende il - porting più semplice se anche il transport cambia (es. `libvirt` come - alternativa). +- **Idea 2 (host Linux)**: la riscrittura Python è **utile ma non strettamente + obbligata**. VMware Workstation Pro esiste nativamente per Linux con lo + stesso `vmrun`, quindi il transport può restare identico (PS 7 su Linux + può continuare a chiamare `vmrun`). Python rende comunque il porting più + semplice se si valuta di passare a un hypervisor diverso (es. KVM con + `libvirt`). - **Idea 3 (ESXi)**: `pyVmomi` (SDK ufficiale VMware per ESXi/vCenter) è **solo Python**. Equivalenti PowerShell sono PowerCLI (richiede PS 7+ moduli VMware.PowerCLI installabili anche su PS 5.1, ma con limiti). diff --git a/plans/idea-2-linux-host.md b/plans/idea-2-linux-host.md index 3262ffe..2398642 100644 --- a/plans/idea-2-linux-host.md +++ b/plans/idea-2-linux-host.md @@ -27,12 +27,17 @@ amministrativi, gestione credenziali. | Opzione | Pro | Contro | Verdetto | | ----------------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------- | -| **A. VMware Workstation Linux** | Comando `vmrun` identico; portabilità VMX dei template. | Licenza commerciale (anche per Linux); supporto guest tools invariato. EOL annunciato da Broadcom — futuro incerto. | Possibile ma rischioso a medio termine. | +| **A. VMware Workstation Pro Linux** | Comando `vmrun` identico (binario `/usr/bin/vmrun`, **senza estensione `.exe`**); VMX dei template riutilizzabili 1:1 (zero conversione); guest tools invariati; dal 2024 free per uso personale e commerciale (Broadcom). | Roadmap di lungo periodo incerta dopo acquisizione Broadcom; dipendenza da binari proprietari su un OS open source. Richiede aggiornare i default hardcoded del wrapper `Resolve-VmrunPath` (`C:\Program Files (x86)\...\vmrun.exe` → `/usr/bin/vmrun`). | **Path a basso attrito** se si vuole minimizzare il rischio di porting (zero conversione template, zero rewrite di `_Common.psm1` oltre al path). | | **B. KVM + libvirt + QEMU** | Open source, supportato nativamente da Linux Mint; tooling solido (`virsh`, `virt-install`, `virt-clone`); cloud-init friendly. | Conversione VMDK→qcow2 obbligatoria (`qemu-img convert`); riconfigurare guest Windows (driver virtio); riscrivere completamente lo strato vmrun. | **Raccomandata** per il lungo periodo. | | C. VirtualBox | Cross-platform, simile a Workstation. | Performance inferiore a KVM; snapshot meno robusti; meno usato in CI. | Sconsigliata. | | D. Proxmox VE | UI di management, API REST. | È un OS dedicato, non gira "sopra" Linux Mint. | Vedi Idea 3 (è simile a ESXi). | -**Le sezioni seguenti assumono Opzione B (KVM)** salvo dove indicato. +**Le sezioni seguenti assumono Opzione B (KVM)** salvo dove indicato — è +lo scenario di porting più impegnativo e quindi quello da pianificare in +dettaglio. Se si sceglie A (Workstation Pro su Linux), la maggior parte del +tooling resta invariato: cambiano solo path (`F:\CI\` → `/var/lib/ci/`), +service manager (Windows Service → systemd), credential store e shell +(PS 5.1 → `pwsh` 7 o Python — vedi Idea 1). ### 2.2 Mappa di adattamento (assumendo Idea 1 già completata o in corso)