Archives For Virtualizzazione

Credo che VMWare ci prenda gusto a rendere più difficile la vita ai suoi utilizzatori (non sempre forse, ma qualche volta si, dai). Con l’avvento della release 5 del suo vCenter, ha introdotto la gestione tramite interfaccia web. Pesante, macchinosa, utilizzarla era tutto fuorché piacevole. Poco male però, il cliente vSphere per Windows ha continuato a resistere e io ho potuto utilizzarlo senza accorgermi di nulla. Con l’arrivo però del vCenter 6, l’azienda ha ben pensato di spingere ulteriormente l’acceleratore sul suo client di gestione web, andando a togliere funzionalità a quello tradizionale, come una delle tab che ho sempre adorato: quella della Storage View, che mi ha permesso vita natural durante di accedere rapidamente alla vista delle snapshot lasciate in giro.

vCenter 6: gestione Snapshot 3

Ora, tanto per chiarire, non sto parlando della nuova interfaccia web HTML5 che dobbiamo ancora tirare in piedi in ufficio (se ne parla qui: labs.vmware.com/flings/vsphere-html5-web-client#summary), ma di quella inizialmente pensata e rilasciata dall’azienda americana. Molto cambierà in futuro, ne sono certo, e spero di poter abbandonare a cuor leggero il vecchio software ormai considerato obsoleto. Nel frattempo il problema va risolto, perché è diventato pressoché impossibile vedere e filtrare in maniera chiara le macchine che hanno almeno una snapshot lì di fianco, a occupare spazio sullo storage, magari inutili perché create prima di un aggiornamento e poi dimenticate.

Riepilogo quello che VMWare chiede: PowerCLI (addon per la PowerShell in versione 3.0, adattata e pronta a collegarsi al vCenter di nuova generazione), un po’ di conoscenza del mondo PowerShell di Microsoft e buona volontà per mettersi in testa che no, nella vecchia maniera non puoi più filtrare le snapshot che hai seminato nel vCenter, traduco quindi in codice:

Connect-VIServer $INDIRIZZOVCENTER
Get-VM | Get-Snapshot | select VM,Name,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}}

Ricerca e risultato in output (con relativa occupazione disco) sono merito di un thread preso su serverfault.com/questions/644132/getting-a-list-of-all-the-snapshots-in-vms-managed-by-vcenter (dove in realtà c’è anche più roba, ma non serve al mio scopo). Il risultato rispecchia perfettamente la richiesta iniziale:

vCenter 6: gestione snapshot

Il problema nasce però dal fatto che sulla stessa macchina io utilizzo PowerShell per altri lavori, soprattutto per gestire il server Exchange in cloud. La versione 3.0 del tool introduce alcune novità che vanno a far botte con i miei script PS1, cosa assai poco gradevole visto l’alto utilizzo degli stessi nell’arco della giornata (della settimana, del mese, ecc.). Ho quindi spostato la trousse dei necessari su una macchina virtuale, dove posso permettermi di dedicare (o quasi) la PowerShell a VMWare.

Esiste l’alternativa?

Fortunatamente si, e non porta la firma di VMWare, ma di una terza parte sotto la benedizione di Veeam Software. Si chiama RVTools, il suo sito web ufficiale è robware.net. Si occupa di raccogliere tutte le informazioni (ma proprio tutte) dell’installazione vCenter, comprese le snapshot che pascolano libere nello spazio disco, il tutto senza conoscere una riga di codice PowerCLI e senza la necessità di installare KB di Windows e altri prodotti VMWare. Tutti i dettagli sono disponibili all’indirizzo robware.net/index.php/5-sectionarticle/category/29-rvtools-home.

Ma funziona?

Funziona, e anche piuttosto bene. Mi sono collegato al vCenter tramite autenticazione passthrough di Windows (quindi non ho dovuto re-inserire le credenziali, ha utilizzato le mie di dominio), ho lasciato che l’applicazione raccogliesse le informazioni e ho potuto sfogliare il risultato come fosse un enorme catalogo ben organizzato tra le varie tab e colonne per ciascuna di esse, compresa una dedicata esclusivamente alle snapshot:

vCenter 6: gestione snapshot 1

L’elenco è consultabile, oltre che dall’applicazione, anche via Excel, perché RVTools permette l’esportazione in file XLS e CSV (dal menu File). Ogni voce di menu consentirà poi di esplorare le informazioni raccolte e organizzarle secondo le proprie esigenze. Comodo, intuitivo, veloce (una volta raccolte le informazioni però, la prima fase è tanto lunga quanto più sono le macchine gestite dal vostro vCenter). È poi possibile utilizzarlo tramite prompt dei comandi o batch perché accetta parametri da riga di comando.

Supponendo che il vostro utente di dominio sia amministratore del vCenter (se così non fosse, non potrete utilizzare il parametro -passthroughAuth nell’istruzione di seguito, ma sarete costretti al -u Administrator -p Password), questo è il comando che vi permetterà di lanciare un inventario e ottenere immediatamente l’elenco delle snapshot presenti sul vCenter:

rvtools -passthroughAuth -s $INDIRIZZOVCENTER -c ExportvSnapshot2xls -d C:\Temp -f vSnapshot.xls

Che potrà essere eseguito anche per esportare un file CSV, semplicemente modificando il tipo di chiamata e il nome del file di destinazione:

rvtools -passthroughAuth -s $INDIRIZZOVCENTER -c ExportvSnapshot2csv -d C:\Temp -f vSnapshot.csv

A tal proposito: il nome del file di destinazione non è obbligatorio. Omettendolo, il programma creerà autonomamente il file di output dandogli un nome di tipo standard, per esempio RVTools_export_all_yyyymmddhhmmss, ad indicare un export di tutte le informazioni, corredato poi dalla data odierna e dall’ora completa dell’avvio esportazione. In ogni caso, trovate tutti i tipi di chiamata diretta e informazioni aggiuntive nella documentazione ufficiale del programma, disponibile all’URL robware.net/download/RVTools.pdf.

Buon lavoro!

Condividi l'articolo con i tuoi contatti:

Giusto ad inizio settimana un collega mi ha richiesto una “automatizzazione di un processo” di installazione Sophos Antivirus su delle macchine virtuali (Thin client per la precisione), in un certo senso si parla di un fritto misto tra processi unattended e VDI (Virtual Desktop Infrastructure). C’è una scheda tecnica abbastanza dettagliata a tal proposito, nella KB del sito Sophos.com:

sophos.com/support/knowledgebase/article/28591.html

Riporta passo dopo passo le operazioni da compiere, fortunatamente semplici da replicare tramite batch senza l’intervento umano. Chiaramente il batch che si andrà a realizzare avrà la necessità di essere avviato come amministratori della macchina (locali o di dominio, non ha importanza), questo perché si richiamano delle stringhe di installazioni che verrebbero inibite ad un utente normale.

# la procedura da seguire

qui di seguito i passaggi suggeriti dalla documentazione ufficiale:

  1. Install Sophos Anti-Virus to a client machine as if it was a fresh install.
  2. After update has finished, stop the Sophos AutoUpdate service. (This prevents an update starting during the procedure, which would attempt to install the other components, breaking the image. The service will restart automatically at the end of the procedure.)
  3. Go to the folder C:\Program Files\Sophos\Remote Management System, and make copies of the following files :
    • cac.pem
    • mrinit.conf
  4. Go to ‘Add/Remove Programs’, and remove the following components :
    • Sophos Anti-Virus
    • Sophos Remote Management System
  5. Delete the contents of the : C:\Program Files\Sophos\AutoUpdate\Cache folder
  6. Delete the : C:\Program Files\Sophos\AutoUpdate\data\status\status.xml file
  7. Re-create the : C:\Program Files\Sophos\Remote Management System folder, and add (to it) the copies of cac.pem, and mrinit.conf you made (above)
  8. Now take the image

# il batch spiegato passo-passo

Tutto parte quindi da un’installazione pulita di Sophos Antivirus, da eseguire con procedura standard su una macchina che si vorrà utilizzare poi come master (clone) per le altre a venire.

Fermando il servizio AutoUpdate si eviteranno interventi da parte del server, condizione fondamentale durante il processo di preparazione:

echo *** Fermo il servizio Update ... ***
echo.
net stop "Sophos AutoUpdate Service"

si copiano quindi i file di configurazione del RMS (Remote Management System) fuori dalla cartella iniziale, basta la root della cartella dell’antivirus:

echo *** Copio file RMS ... ***
echo.
cd "%programfiles%\Sophos\Remote Management System"
copy cac.pem ..\cac.pem
copy mrinit.conf ..\mrinit.conf

e si procede con la disinstallazione di RMS e parte AntiVirus (lasciando solo -quindi- la parte AutoUpdate):

echo *** Disinstallo Sophos Antivirus ... ***
MsiExec.exe /X{034759DA-E21A-4795-BFB3-C66D17FAD183} REBOOT=SUPPRESS /qn 2>NUL
echo.
echo Eseguito.
echo.
echo *** Disinstallo Sophos Remote Management System ... ***
MsiExec.exe /X{FF11005D-CBC8-45D5-A288-25C7BB304121} REBOOT=SUPPRESS /qn 2>NUL
echo.
echo Eseguito.

una veloce pulizia della cartella Cache seguita a ruota dalla rimozione del file di status dell’ultimo update ricevuto:

echo *** Cancello cartella Cache ... ***
cd ..\AutoUpdate
rd Cache /S /Q
echo.
echo *** Cancello Status Update ... ***
cd data\status
del status.xml

per arrivare infine al ripopolamento della cartella RMS precedentemente disinstallato:

echo *** Popolo cartella Remote Management System ***
cd %programfiles%\Sophos
if not exist "Remote Management System" mkdir "Remote Management System"
move cac.pem "Remote Management System"
move mrinit.conf "Remote Management System"

il gioco è praticamente fatto, la macchina da clonare è pronta (provando ad immaginare che Sophos sia stato l’ultimo software da preparare per il master).

Sulla macchina clonata basterà attendere (o lanciare forzatamente) un aggiornamento del client per far partire immediatamente il download dei pacchetti mancanti con conseguente installazione, nome macchina differente (sicuramente) ma configurazioni praticamente identiche alla macchina che ha generato il clone.

Facile, comodo, veloce :-)

Buon lavoro!

Condividi l'articolo con i tuoi contatti: