Respostas:
O VMware Server é a ferramenta correta para executar uma VM em segundo plano, não o VMware Player.
Desculpe pela resposta tardia com isso. Eu estava tentando descobrir isso hoje. Me deparei com esta resposta, imaginei que eu sabia SF.
Você pode realmente ...
Adicione isso ao seu arquivo de configuração do VMX para configurar o VMWare Player para não mostrar a interface do usuário:
msg.noOk = "TRUE"
Obtenha o instsrv.exe em um Windows Server Resource Kit para criar seu próprio serviço
Na inicialização, faça um arquivo em lote para chamar o serviço que você acabou de criar
Instruções passo a passo podem ser encontradas aqui:
http://research.stowers-institute.org/dct/docs/admin/VMwarePlayerService.htm
Sei que essa é uma pergunta antiga, mas procurei na Internet uma solução para isso e não consegui encontrar algo tão abrangente quanto o que gostaria de compartilhar.
Sim, é possível usar o vmware player como um serviço para Linux (há uma resposta separada para o Windows); é fácil e não há motivo para pensar em não fazê-lo. É especialmente bom para hospedar um servidor sem cabeça a partir de um servidor sem cabeça.
A outra opção orientada à VMware, o VMware Server, foi preterida e a única outra opção de US $ 0 que eu conheço é o VirtualBox. Se você gosta mais do que o VMWare Player, terá mais poder, mas conheço o VMWare Player e não vejo uma razão para não usar um caminho bem suportado para obter o que quero.
Presumivelmente, você deseja que ele seja executado em uma conta não raiz e inicie e encerre nos horários padrão de inicialização / desligamento do serviço. Se for esse o caso, veja como configurá-lo:
Obtenha o pacote daemon (geralmente não instalado por padrão):
apt-get install daemon
Faça o download do VMware Player e VMware VIX em vmware.com e instale-os para obter o mecanismo da VM e o binário vmrun do VIX (controle de linha de comando da execução da vm).
Adicione o serviço à inicialização criando /etc/init.d/<vm_server_name>
. Pode ser algo como isto:
#! /bin/bash
### BEGIN INIT INFO
# Provides: vm_server_name
# Required-Start: $named $remote_fs $syslog
# Required-Stop: $named $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: My Server VM
# Description: Virtual Machine instance of My Server
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
VM="/path/to/vmx_file.vmx"
USER_TO_RUN_UNDER="username"
if [[ "$USER" == "$USER_TO_RUN_UNDER" ]]; then
USER_FLAG=""
else
USER_FLAG="--user=$USER_TO_RUN_UNDER"
fi
case "$1" in
start)
daemon $USER_FLAG -- vmrun -T player start "$VM" nogui &>/dev/null &
;;
stop)
vmrun -T player suspend "$VM" &>/dev/null
while [[ "$(vmrun -T player list | grep -o "$VM")" == "$VM" ]]; do
sleep 1
done
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
Torne o script executável:
chmod a+x /etc/init.d/vm_server_name
Adicione o script aos níveis de execução de inicialização / desligamento do serviço linux padrão. Os números garantem que é uma das últimas coisas iniciadas e a primeira a ser encerrada:
update-rc.d vm_server_name defaults 99 01
Notas:
/etc/init.d/vm_server_name stop
e inicie-o localmente usando a GUI do VMware player. Depois de terminar, suspenda-o e execute /etc/init.d/vm_server_name start
para iniciar a instância sem cabeça novamente.Do SuperUser
É possível usar este muito antigo wrapper gratuito da Microsoft (google para obter explicações sobre srvany): ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/srvany_x86.exe
Ou também existem ferramentas comerciais: http://www.coretechnologies.com/products/AlwaysUp/Apps/RunVMwarePlayerAsAService.html