domenica, Dicembre 22, 2024

Vmware Scripting

360consulting
360consultinghttp://www.3centosessanta.it/
360 Consulting nasce nel 2006 come azienda specializzata nel mondo ICT dall'esperienza pluriennale del suo fondatore, Matteo Ferraroni, maturata dopo anni di collaborazione con aziende del settore. Il suo core business è rappresentato dalle consulenze e progettazioni di reti wireless e cablate, e dall'offerta di connessione ad Internet. All'interno dell'azienda si muovono studi legali, sviluppatori software, sistemisti, esperti in marketing e comunicazione, assemblatori hardware, project manager, esperti in sicurezza informatica, grafici e stampatori ed il risultato del loro sforzo comune è la soddisfazione del cliente: il nostro obbiettivo principale! I nostri punti di forza sono: - Flessibilità e molteplicità di incarichi che portiamo a termine con garanzia di professionalità - Assistenza tecnica e commerciale pre e post vendita gestita da persone cortesi e competenti anche in caso di reclami

Introduzione

Ho installato vmware server ad un cliente con connettività lentissima, per cui era impossibile aggiungere e togliere macchine virtuali dalla GUI di Vmware, per questo ho creato una macchina master e poi ho creato questi script per la creazione / modifica / cancellazione / consultazione dello stato delle macchine.

Creazione di una macchina virtuale (script add_vm)

Questo script permette la clonazione della macchina master (il path della macchina master DEVE essere: /var/lib/vmware/Virtual Machines/master) rinominandola a nostra scelta e permette la scelta della quantità di ram da associare alla macchina. ATTENZIONE: La macchina master deve essere stata creata con:

  • Nome file di configurazione: Other Linux Kernel 2.6
  • Nome file degli hard disk: master

altrimenti lo script non funziona.

#!/bin/bash
# Questo script crea una macchina virtuale e la manda in esecuizione
#
if [ $# = 0 ]; then
       echo "usage : $0 <nome_vm> <ram_vm>";
       exit 1;
fi
if [ $# = 1 ]; then
       echo "usage : $0 <nome_vm> <ram_vm>";
       exit 2;
fi
echo -e "Sto clonando la macchina master. Attendere prego";
cp -ax /var/lib/vmware/Virtual Machines/master/ /var/lib/vmware/Virtual Machines/$1;
cd /var/lib/vmware/Virtual Machines/$1;
/usr/bin/vmware-vdiskmanager -n master.vmdk $1.vmdk;
sed -i "s/master.vmdk/${1}.vmdk/g" Other Linux 2.6.x kernel.vmx;
sed -i "s/master/${1}/g" Other Linux 2.6.x kernel.vmx;
sed -i "s/memsize = "256"/memsize = "${2}"/" Other Linux 2.6.x kernel.vmx;
sed -i "/uuid/d"  Other Linux 2.6.x kernel.vmx;
/usr/bin/vmware-cmd -s register /var/lib/vmware/Virtual Machines/$1/Other Linux 2.6.x kernel.vmx;
echo -e "La virtual machine e' registrata.";
echo -e "Starting virtual machine Per gli avvii successivi usare l'interfaccia web o lo script start_vm";
/usr/bin/vmware-cmd /var/lib/vmware/Virtual Machines/$1/Other Linux 2.6.x kernel.vmx start;
echo -e "Attendere il completo avvio - circa 20 secondi - prima di provare l'accesso";

Cancellazione di una macchina virtuale (script rm_vm)

Questo script cancella la macchina virtuale da vmware server (unregister) ma non dal disco.

#!/bin/bash
# Script per cancellare una vm
#
if [ $# = 0 ]; then
       echo "usage : $0 <nome_vm>";
               exit 1;
       fi
#
/usr/bin/vmware-cmd -s unregister /var/lib/vmware/Virtual Machines/$1/Other Linux 2.6.x kernel.vmx;
echo -e "Cancellare manualmente la dir /var/lib/vmware/Virtual Machines/$1";

Visualizzazione stato di una macchina (script state_vm)

Questo script visualizza lo stato (on / off) di una macchina virtuale

#!/bin/bash
#
#if [ $# = 0 ]; then
        echo "usage : $0 <nome_vm>";
        exit 1;
        fi
#
#/usr/bin/vmware-cmd /var/lib/vmware/Virtual Machines/$1/Other Linux 2.6.x kernel.vmx getstate;

Visualizzazione dello stato di tutte le macchine virtuali esclusa la master (script view_vm)

L’output di questo script è il seguente: numero_macchina – nome_macchina – on/off – memoria_ram_massima

#!/bin/bash
#
/usr/bin/vmware-cmd -l | awk -F '/' {'print $6'} | grep -v master > /tmp/view;
echo -e "*** Sono presenti $(cat /tmp/view$numero | wc -l) Macchine virtuali ***";
num=1;
for i in $(cat /tmp/view);
do
        state=$(/usr/bin/vmware-cmd /var/lib/vmware/Virtual Machines/$i/Other Linux 2.6.x kernel.vmx getstate | awk {'print $3'});
       ram=$(vmware-cmd /var/lib/vmware/Virtual Machines/$i/Other Linux 2.6.x kernel.vmx getconfig memsize | awk {'print $3'});
       echo -e "$num - $i - $state - $ram MB";
       ((num++));
done;
rm /tmp/view;

Avvio di una macchina virtuale da linea di comando

#!/bin/bash
#
#if [ $# = 0 ]; then
       echo "usage : $0 <nome_vm>"
       exit 1;
#fi
/usr/bin/vmware-cmd /var/lib/vmware/Virtual Machines/$1/Other Linux 2.6.x kernel.vmx start;

Arresto di una macchina virtuale da linea di comando (richiede vmware tools installati)

#!/bin/bash
#
#if [ $# = 0 ]; then
       echo "usage : $0 <nome_vm>"
       exit 1;
#fi
/usr/bin/vmware-cmd /var/lib/vmware/Virtual Machines/$1/Other Linux 2.6.x kernel.vmx stop;

Invio di un comando custom ad una macchina virtuale da linea di comando (specificando solo il nome e non il path di configurazione)

#!/bin/bash
#
/usr/bin/vmware-cmd /var/lib/vmware/Virtual Machines/$1/Other Linux 2.6.x kernel.vmx $2;

Footer

Per ogni inesattezza, modifica, commento o insulto, vi prego di contattarmi via mail a [email protected].

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie