Estou tentando usar o virt-install para facilmente configurar uma VM. Tola eu.
O fim de jogo aqui é ter aproximadamente dez desses garotos mal-intencionados correndo que todos têm que se comunicar uns com os outros via ssh, http, vários tipos de bancos de dados, etc. Então, eles DEVEM estar em rede, e também, desde Estou usando ansible para automatizar a configuração para todos os diferentes serviços que cada um precisa, cada vm deve ser acessível via ssh em um IP estático (também, embora a porta ssh não precise ser 22 , deve ser o mesmo para cada vm, porque ssh_port
é uma configuração global em ansible, não pode ser diferente para hosts diferentes) e, finalmente, precisa ser feito sem gráficos ou desligando o daemon ssh do host. Eu estou fazendo a configuração em um servidor remoto, headless que só posso acessar via ssh e não executa um servidor X11.
Eu adoraria se alguém pudesse me ajudar a iniciar uma VM que atendesse a esses requisitos, mas honestamente eu me contentaria em apenas começar a maldita coisa. Estou tentando iniciar uma única vm assim:
OS="--os-type linux --os-variant centos7.0"
Net="--network bridge:virbr0"
Disk="./traffic_ops_db_primary.img,size=10"
Location="--location 'http://mirror.i3d.net/pub/centos/7/os/x86_64/'"
Cpu="--vcpus=4"
Ram="--ram=2048"
Name="--name traffic_ops_db_primary"
Extra="--extra-args console=ttyS0"
sudo virt-install $OS $Net $Disk $Location $Cpu $Ram $Name $Extra
Como sugerido por vários guias on-line e respostas de stackoverflow. No entanto, não consigo encontrar uma única pessoa com esse processo que falhe com o erro:
WARNING Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING No console to launch for the guest, defaulting to --wait -1
Starting install...
Retrieving file vlinuz...
Retrieving file initrd.img...
ERROR error from service: ListActivatableNames: Connection is closed
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start traffic_ops_db_primary
otherwise, please restart your installation.
O que realmente incomoda isso é que ele não falha se eu não o executar como root (mas não posso expô-lo à rede sem permissões de root). Aqui está a saída de ip addr show virbr0
:
7: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 52:54:00:39:77:0d brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
Então existe e está em alta. Eu tentei outros dispositivos de rede também, o que dá esse erro ou <device name> port vnet0 does not exist
, o que me é dito significa que o dispositivo não existe (o que é besteira porque é o dispositivo que eu uso para conectar via ssh para a máquina). Se, por algum motivo, for impossível usar o dispositivo virbr0
, não haveria problema comigo, porque, de preferência, a máquina receberia um IP estático na interface "principal", para que eu pudesse fazer ssh diretamente do meu computador pessoal.
TL; DR: virt-install
está jogando o erro ListActivatableNames: Connection is closed
para a ponte virtual padrão, e pesquisando apenas esse nome de serviço resulta literalmente em zero resultados. O que fazer?
EDIT: Eu quis incluir isso, mas esqueci: a saída de sudo virsh net-list --all
:
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes