Script para Clonar VM no VMware ESXi com modo de disco thin

Recentemente precisei clonar uma máquina virtual que estava ocupando muito espaço em disco, porém a VM não tinha o disco virtual cheio.
Minha solução foi clonar a máquina virtual atual para uma nova máquina virtual, e para isso usei este script que faço uso constante dele.

Segue o script: (execute este por meio do SSH)

#!/bin/sh

if [ $# != 2 ]; then
        echo "Uso: $(basename $0) <CAMINHO DE ORIGEM DA VM> <CAMINHO DE DESTINO>"
        echo
        echo "  1) Funciona somente com VM's com um unico .vmdk"
        echo "  2) A VM deve estar Desligada"
        echo "  3) Nao deve haver snapshots ativos da VM"
        echo
        echo "Exemplo: $(basename $0) /vmfs/volumes/datastore1/VM1 /vmfs/volumes/datastore2"
        exit
fi

vmx_path=$(/bin/ls "$1"/*.vmx)
vmx=$(basename "$vmx_path")
name=$(grep displayName "$1/$vmx" | /bin/awk -F\" '{print $(NF-1)}')
vmxf=$(grep vmxf "$1/$vmx" | /bin/awk -F\" '{print $(NF-1)}')
nvram=$(grep nvram "$1/$vmx" | /bin/awk -F\" '{print $(NF-1)}')
vmdk=$(grep vmdk "$1/$vmx" | /bin/awk -F\" '{print $(NF-1)}')

echo "Iniciado a copia da VM '$name'"

vmdir=$(basename "$1")
destpath="$2/$vmdir"

echo "Caminho de Origem: $1"
echo "Caminho de Destino: $destpath"

echo "Criando o caminho de destino: '$destpath'"
/bin/mkdir -p "$destpath"

echo "Copiando os arquivos de configuracoes:"
echo "vmx: $vmx"
/bin/cp "$1/$vmx" "$destpath"
echo "vmxf: $vmxf"
/bin/cp "$1/$vmxf" "$destpath"
echo "nvram: $nvram"
/bin/cp "$1/$nvram" "$destpath"

echo "Copiando o Disco Virtual:"
echo "vmdk: $vmdk"
/sbin/vmkfstools -d thin -i "$1/$vmdk" "$destpath/$vmdk"

echo "Concluida a copia da VM: '$name'"

 

5
Sending
User Review
5 (1 vote)

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

%d blogueiros gostam disto: