Como criar o guest KVM com gráficos SPICE, mas o TLS desativado usando o virt-install?

7

Estou usando virt-install (veja abaixo) para criar um convidado. Tudo parece bem até o ponto em que se queixa de auto-alocação da porta SPICE TLS.

Veja o que estou executando e a saída completa:

# sudo virt-install --name vmname --ram 1024 --os-type=linux --os-variant=ubuntutrusty --disk path=/data/vm/vmname_sda.qcow2,bus=virtio,size=10,sparse=false --noautoconsole --console pty,target_type=virtio --accelerate --hvm --network=network:default --graphics spice,port=20001,listen=127.0.0.1

Starting install...
Retrieving file MANIFEST...                                                                                  | 2.1 kB     00:00 ...
Retrieving file MANIFEST...                                                                                  | 2.1 kB     00:00 ...
Retrieving file linux...                                                                                     |  11 MB     00:00 ...
Retrieving file initrd.gz...                                                                                 |  41 MB     00:00 ...
ERROR    unsupported configuration: Auto allocation of spice TLS port requested but spice TLS is disabled in qemu.conf
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start vmname
otherwise, please restart your installation.

O erro é:

ERROR unsupported configuration: Auto allocation of spice TLS port requested but spice TLS is disabled in qemu.conf

e, de fato, no meu /etc/libvirt/qemu.conf eu tenho:

spice_tls = 0

(e intencionalmente).

Então, como posso criar um convidado KVM usando o protocolo SPICE para gráficos, mas com o TLS desativado ?

Eu duvido que seja relevante, mas o motivo pelo qual eu quero desabilitar o TLS é porque estou tunelando a conexão com SPICE via SSH. Não há necessidade de uma camada extra de criptografia.

O sistema host é o Ubuntu 14.04.1. Versões do pacote são:

  • virtinst: 0.600.4-3ubuntu2
  • qemu-kvm: 2.0.0 + dfsg-2ubuntu1.2

(todos atualizados até apt-get )

    
por 0xC0000022L 06.08.2014 / 19:35

2 respostas

5

Ok, trabalhei por aí sozinho. Na opção:

--graphics spice,port=20001,listen=127.0.0.1

remova o parâmetro port de tal forma que se torne:

--graphics spice,listen=127.0.0.1

Você precisa configurar o elemento <graphics /> no arquivo de configuração libvirt XML. Minha invocação de virt-install me deu isto:

<graphics type='spice' autoport='yes' listen='127.0.0.1'>
  <listen type='address' address='127.0.0.1'/>
</graphics>

Há uma ressalva. Eu terminei a instalação enquanto o SPICE ainda estava conectado à porta padrão auto-conectada (5900 no meu caso). Se você encerrar o convidado antes de concluir a instalação, todo o processo iniciado por virt-install será interrompido.

Para alterá-lo, deve-se desligar o guest e editar o XML para algo como o seguinte, usando virsh edit vmname (onde vmname deve ser substituído pelo seu nome):

<graphics type='spice' autoport='no' port='20001' listen='127.0.0.1'>
  <listen type='address' address='127.0.0.1'/>
</graphics>

Solução possível para conflitos "port in use". Use qualquer um dos endereços de rede locais diferentes de 127.0.0.1 de 127.0.0.0/24, por exemplo 127.0.0.2 etc para ouvir.

OBSERVAÇÃO: Se alguém conseguir chegar a uma solução melhor (ou seja, real), aceitarei a outra resposta. Este writeup é principalmente para outras pessoas que podem ter o mesmo problema.

    
por 06.08.2014 / 21:11
1

a solução é dizer ao kvm / virt para usar como padrão uma conexão insegura.

<graphics type='spice' autoport='yes' listen='0.0.0.0' defaultMode='insecure'>
  <listen type='address' address='0.0.0.0'/>
</graphics>

Defina o defaultMode para insecure e você pode usar até autoport='yes' e está tudo bem.

Uma dica, quando você pesquisa a porta, você precisa usar domdisplay :

[root@kvm repo]# virsh domdisplay --domain openshift1
spice://localhost:5900

Não sei se isso é um bug ou um comportamento correto, mas a saída de virsh domdisplay --domain openshift1 mostra localhost em vez de 0.0.0.0 . Mas você pode se conectar a partir do externo com o servidor ip / dns para o seu convidado vm. Certifique-se de que o firewall permita que você se conecte a essas portas e até mesmo o kvm / virt ouça 0.0.0.0 , como mostrado acima.

    
por 05.06.2017 / 00:05