Programando o VMware ESXi 4.1 VM Reiniciar

2

Tivemos uma máquina virtual em execução em um host do VMWare Server no Windows Server 2003.

A máquina está configurada com discos não persistentes.

Tivemos uma programação de tarefas do Windows configurada que executava um arquivo em lote para redefinir a máquina a cada semana para que ela retornasse ao estado original.

O arquivo em lote que estávamos executando era:

"C:\Program Files\VMware\VMware Server\vmware-cmd" "C:\Virtual Machines\VirtualMachineName\VirtualMachineName.vmx" stop hard
"C:\Program Files\VMware\VMware Server\vmware-cmd" "C:\Virtual Machines\VirtualMachineName\VirtualMachineName1.vmx" start

Desde então, migramos esta máquina para a versão gratuita do ESXi 4.1.

Alguém pode me informar se e como é possível agendar essa reinicialização?

    
por Robin Day 25.02.2011 / 09:24

3 respostas

4

  • habilitou o acesso ssh ao seu ESXi
  • adicionar trabalho cron ao crontab raiz (/ var / spool / cron / crontabs / root)

Você pode iniciar, reinicializar, interromper e suspender máquinas virtuais usando o vmware-cmd:

vmware-cmd -H <vc_system> -U <user> -P <password> --vihost <esx_host>
/vmfs/volumes/Storage2/testvm/testvm.vmx stop soft
vmware-cmd -H <vc_system> -U <user> -P <password> --vihost <esx_host>
/vmfs/volumes/Storage2/testvm/testvm.vmx start soft
    
por 25.02.2011 / 09:38
2

Se você ainda não fez isso, precisará ativar o ssh acesse no seu host ESXi.

Depois de ter feito isso, você pode colocar os comandos vmware-cmd em um script e executá-los a partir do cron, por exemplo.

#!/bin/bash
/usr/bin/vmware-cmd "Centos 5" stop hard
sleep 30
/usr/bin/vmware-cmd "Centos 5" start

pararia e então iniciaria a máquina "Centos 5" no host atual.

Coloque isso no crontab raiz

30 1 * * 0 /path/to/restart-script

e você deve ser bom para ir.

Editar:

Como chopper3 observa que o crontab não é persistente entre as reinicializações, então você precisará editar o arquivo / etc / local e adicionar comandos para recriar o crontab raiz, por exemplo.

/bin/kill $(cat /var/run/crond.pid)
/bin/echo "30 1 * * 0 /path/to/restart-script" >>/var/spool/cron/crontabs/root
/bin/busybox crond
    
por 25.02.2011 / 17:47
0

Você poderia também agendar uma reinicialização dentro da própria máquina virtual? Quer seja um Linux ou uma VM do Windows, você deve poder usar o cron ou o Agendador de Tarefas dentro do convidado para executar a reinicialização agendada.

    
por 25.02.2011 / 16:07