Como acessar um console de VM no XCP?

1

Eu instalei o pacote xcp-xapi no Ubuntu 12.10. Já criei uma MV de PV no XenCenter, mas não consigo acessar seu console - quando escolho a guia Console no XenCenter, acabei de receber uma página em branco.

Eu tentei isso via console e entendi:

bear@ubuntu-tmp1:~$ sudo xe vm-list params=dom-id
dom-id ( RO)    : 0


dom-id ( RO)    : 2


bear@ubuntu-tmp1:~$ sudo xenstore-ls /local/domain/2/serial
0 = ""
 limit = "65536"
bear@ubuntu-tmp1:~$

De acordo com o link oficial, eu deveria pelo menos ver 'tty' e 'vnc' na saída, mas Eu não tenho nenhum deles ... Agora eu não tenho como instalar o sistema operacional na VM porque não há console disponível ...: - (

    
por Lingfeng Xiong 10.01.2013 / 16:48

1 resposta

1

Existe um comando CLI oculto (para o qual enviei um pedido para tornar não oculto):

xe console uuid=<vm_uuid>

Observe que isso funciona apenas para convidados PV. Como alternativa, para convidados PV e HVM, você pode usar o vncviewer para obter um console VNC. Use o xenstore para obter a porta VNC:

PORT=xenstore-read /local/domain/${domid}/console/vnc-port

e depois ligue:

vncviewer -via root@${YOUR_SERVER} localhost::${PORT}

Aqui está um script que faz isso para você:

#!/bin/bash

function usage () {
    echo "Usage:"
    echo "   'basename $0' -h <xenserver host> -g <guest vm name-label>"
    echo "   'basename $0' -h <xenserver host> -u <guest vm uuid>"
    echo "   'basename $0' -h <xenserver host> -d <domID>"
    exit 1
}

while getopts "h:g:u:d:" option
do
    case $option in
        h ) xs=${OPTARG} ;;
        g ) vm=${OPTARG} ;;
        u ) uu=${OPTARG} ;;
        d ) id=${OPTARG} ;;
        * ) usage
    esac
done

if [ -z ${xs} ]; then
    usage
fi

if [ -z ${uu} ] && [ -z ${vm} ] && [ -z ${id} ]; then
    usage
fi

if [ ! -z ${uu} ]; then
    domid='ssh root@${xs} xe vm-list uuid=${uu} params=dom-id --minimal'
elif [ ! -z ${vm} ]; then
    domid='ssh root@${xs} xe vm-list name-label=${vm} params=dom-id --minimal'
elif [ ! -z ${id} ]; then
    domid=${id}
fi

if [ -z ${domid} ]; then
    echo "Could not find guest ${vm}${uu} on host ${xs}."
    exit 1
elif [ ${domid} -lt 0 ]; then
    echo "Guest ${vm}${uu} has no dom-id. Is your vm running?"
    exit 1
fi

port='ssh root@${xs} xenstore-read /local/domain/${domid}/console/vnc-port'

if [ -z ${port} ]; then
    echo "Couldn't read VNC port from xenstore. Is your vm running?"
    exit 1
fi

echo "Connecting to vnc port ${port} on host ${xs}..."
set -x
vncviewer -via root@${xs} localhost::${port}
    
por 27.01.2013 / 19:12

Tags