refactor(plans): update Linux host adaptation details for VMware Workstation Pro and KVM options
This commit is contained in:
@@ -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).
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user