Seguo da parecchio tempo il mondo VMware, convinto che sia la via e l'azienda giusta per il futuro dell'IT. Ho cominciato come tutti da VMware Workstation ma ben presto mi sono interessato ai prodotti di fascia più alta, di cui ESX è la più elevata espressione in congiunzione a Virtual Infrastructure. La mia attività professionale mi ha portato a gestire conto terzi un po' di macchine con sopra ESX3 e se c'è una cosa che è snervante è la gestione delle patch. E' in via di netto miglioramento, visto che in VMware si sono accorti che potrebbe non essere necessario seguire lo stesso ordine di installazione, ma rimane comunque una noia.
Questa noia può essere rotta in parte da un fantastico tool preesistente al mio interessamento e cioè esx-autopatch. I manutentori dello script forniscono anche un file riportante l'ordine delle patch da installare e la cosa semplifica già di molto il lavoro: basta scaricare le patch, scaricare il file aggiornato e lanciare su ciascun host esx-autopatch dandogli a disposizione un file server NFS su cui reperire entrambi. Rimane una noia però scaricare le patch: sono tante, soprattutto all'inizio e sono da mettere come visto in un repository NFS o HTTP.
Qui viene il bello, perché un server HTTP lo si ha già quando si installa ESX con Virtual Infrastrucure e cioè quello di tomcat per l'amministrazione web. Da qui l'idea di realizzare un tool in python in grado di scaricare le patch per una data versione, per poi far mettere le patch periodicamente dal VI3 server in un path visibile dalle macchine ESX e metterci anche il file fornito dai ragazzi di vmprofessional.com.
Gli script sono in due versioni, sorgente in Python e compilato (sempre Python) per Windows. Una volta copiati in un path per eseguirli basta:
esx_download.exe --outpath=C:\Updates --download --product="ESX Server 3.0.1"
per vedersi scaricate le patch per il prodotto richiesto. A questo punto il passo dopo è sfruttare il server Tomcat presente grazie a VI3 con uno script di shell che scarica direttamente le patch in una sezione "pubblica":
c:\ESXUpdates\esx3_download.exe --download
--outpath="C:/Program Files/VMware/VMware VirtualCenter 2.0
/tomcat/webapps/ui/esx-updates/3.0.1/"
Avendo cura di salvarci anche il file patchlist.txt fornito dal sito di esx-autopatch. Sulla singola macchina basta quindi lanciare:
./esx-autopatch.pl --http --url http://vmware-vi3-test:8086/ui/esx-updates
per effettuare l'aggiornamento del server. Se il firewall, presente con ogni installazione di esx, è attivo è ovviamente necessario ricordarsi di disattivarlo o di creare una regola ad hoc.