Visualizzazione post con etichetta vcb. Mostra tutti i post
Visualizzazione post con etichetta vcb. Mostra tutti i post

venerdì 4 maggio 2007

Permessi minimi per VCB

Spesso capita di creare degli script vcb per lo snapshot delle virtual machine, e dato che le password dell'utente che esegue vcb vengono scritte in chiaro ho cercato di creare un "Roles" customizzato per il suddetto utente in modo da limitare i danni in caso di furto di credenziali dell'ute

Da Vi3 Client create un nuovo ruolo dal tab "Admin". Admin -> Roles -> Add

A questo punto indicare i permessi con da immagine successiva

I permessi sono:
All permission -> Virtual Machine -> State (Completo)
All permission -> Virtual Machine -> Provisioning (Read Customization Specification, Allow ReadOnly Disk Access, Allow Virtual Machine Download)

sabato 21 aprile 2007

VMVoodooSync

Questo è un piccolo script per sincronizzara un virtual machine tra due server esx con storage locale.

Per prima cosa si devono creare le chiavi ssh per l'accesso tra i due server. Per facilitare tutte le procedure di copia tra i due server si userà l'utente root.

1. Abilitare su entrambi i server l'accesso ssh come root
2. Creare le chiavi ssh su entrambi i server
3. Configurare vcb
4. Creare la directory di stage dei file vmdk
5. Creare lo script di sincronizzazione
6. Abilitare il firewall per le connessioni ssh in uscita
7. Testare lo script
8. Configurare cron per le schedulazioni delle sincronizzazioni

# vi /etc/ssh/sshd_config
PermitRootLogin yes
# /etc/init.d/sshd restart
# ssh-keygen -t dsa
Non digitare nessuna password per la decriptazione delle chiavi
# scp .ssh/id_dsa.pub root@esx02:~root/.ssh/authorized_keys
# ssh root@esx02
Se tutto va bene il login non dovrebbe richiedere nessuna password

Dato che la password di root in questo esempio viene scritta in chiaro nel file di vcb, è altamente consigliabile creare un utente aggiuntivo e da ViClient dargli i permessi minimi per creare e rimunovere gli snapshots
# vi /etc/vmware/backuptools.conf
modificate le seguenti voci
VCHOST=localhost
USERNAME=root
PASSWORD=root_password
TEMPDIR=/vmfs/volumes/storage1/tmp_backup

La directory di stage del backup deve essere abbastanza grande per contenere la virtual machine di maggior dimensioni.
# mkdir /vmfs/volumes/storage1/tmp_backup

Ora creiamo lo script di sincronizzazione
# mkdir /opt/script
# vi /opt/script/vmvoodoosync.sh

#!/bin/bash

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

DATE="$(date +%d-%m-%Y)"
HOST="`hostname -s`"
HOSTDR="192.168.192.99"

LOG="/vmfs/volumes/storage1/tmp_backup/Backuplog-$DATE.log"

echo "Backup $HOST started at `date`" > $LOG

for vmname in `/usr/sbin/vcbVmName -s powerstate:on |grep name: | awk -F: '{print $2}'`;
do ssh backupusr@$HOSTDR "mkdir -p /vmfs/volumes/storage1/$vmname"
/usr/sbin/vcbMounter -a name:$vmname -M 1 \
-r scp://backupusr@$HOSTDR:/vmfs/volumes/storage1/$vmname >> $LOG
done

echo "Backup $HOST finished at `date`" >> $LOG


Apriamo le porte del firewall su entrambi gli host
# esxcfg-firewall -e sshServer
# ssh root@esx02 -c " /usr/sbin/esxcfg-firewall -e sshServer"

Ora testiamo lo script.. ma prima ve reso eseguibile
# chmod 755 /opt/script/vmvoodoosync.sh
# /opt/script/vmvoodoosync.sh

Per verificare il corretto funzionamento dell0 script potete verificare il file di log all'interno della directory di stage

Se tutto è andato bene potete configurare la schedulazione
# contrab -e
30 20 * * * /opt/script/vmvoodoosync.sh