08 settembre 2009

ESXi: stop o riavvio forzato delle VM

ESXi non dispone dell'accesso alla shell, quindi, nel caso in cui si rendesse necessario riavviare o fermare forzatamente una VM piantata che non risponde ai comandi del Infrastructure Client, l'unico modo è ricorrere al VI Remote CLI.

Occorre quindi:
- scaricare e installare il Remote CLI, lanciarlo e portarsi nella sua dir "bin"
- elencare le VM presenti sull'host: vmware-cmd.pl -H ip_host -l
- nell'elenco delle VM, individuare quella che vogliamo stoppare o riavviare
- lanciare il comando per:
stopparla: vmware-cmd.pl -H ip_host -l percorso_VM stop
oppure avviarla: vmware-cmd.pl -H ip_host -l percorso_VM start
oppure riavviarla: vmware-cmd.pl -H ip_host -l percorso_VM reset

I comandi start, stop e reset possono essere seguiti dal valore del "powerop_mode". Il valore di default (quindi se omesso) è soft. Gli altri valori possibili sono hard e trysoft.

ESXi: esportazione delle macchine virtuali

Il problema: fare una copia di backup di una VM residente su un host ESXi, senza tool di backup aggiuntivi.

La maniera più semplice è di collegarsi all'Infrastructure Client, selezionare la VM e usare il comando "File -> Virtual appliance -> Export".
Peccato che ci siano alcuni prerequisiti: la VM deve essere spenta e, soprattutto, devono essere consolidati tutti gli snapshot; in particolare, senza avere ottemperato a questo secondo punto, la procedura si pianta con un errore strampalato.

Il consolidamento degli snapshot elimina tutti i punti di ripristino precedenti allo stato attuale e può essere eseguito anche a VM attiva.
Occorre tenere a mente che, a seconda della dimensione degli snapshot, può essere necessario molto tempo affinché l'operazione si concluda (anche alcune ore); attenzione, perché l'indicatore del Infrastructure Client sale velocemente al 95% e poi si pianta qui fino alla conclusione della operazione, quindi niente panico e nessuna manovra azzardata (reset, riavvi ecc) sino al termine.

03 settembre 2009

XP, "Esegui come" e runas

Mi capita di dover installare una applicazione che richiede i diritti amministrativi per completare il setup, ma ovviamente gli utenti "normali" del dominio non hanno i privilegi necessari e a disconnettersi e a riconnettersi con un altro utente ci vuole un sacco di tempo.

La prima cosa che viene in mente è fare click con il tasto desto sulla icona del setup e scegliere la voce "Esegui come" e inserire login e password di un utente con i permessi necessari.
Sorpresa: se il setup da lanciare è posizionato su un disco di rete mappato (ad esempio F:\setup.exe, dove F: è una roba del tipo NET USE F: \\SERVER\SHARE), si ottiene un errore che più o meno dice che non si riesce a trovare il percorso richiesto.
Lo stesso accade lanciando l'eseguibile con RUNAS (es: RUNAS/user:dominio\username f:\setup.exe), e non potrebbe essere altrimenti visto che "Esegui come" è solo una interfaccia grafica per RUNAS.

Il motivo di questo pasticcio è che i dischi mappati usano il contresto di sicurezza dell'utente corrente, e RUNAS non può usarlo in quanto cerca di accedere al programma usando il contesto dell'utente che viene impersonato.

Capito il problema la soluzione è semplice: non usare il percorso relativo al disco mappato ma quello UNC (quindi, nel nostro esempio: es: RUNAS /user:dominio\username \\server\setup.exe). Se non si vuole usare RUNAS da linea di comando ma "Esegui come", basta raggiungere la posizione del setup navigando la rete e non accedendo al disco mappato).