J'essaie d'utiliser virt-install pour configurer facilement un vm. Que je suis bête.
La finalité ici est d’avoir environ dix de ces bad boys en cours d’exécution qui doivent tous être capables de communiquer les uns avec les autres via ssh, http, différents types de bases de données, etc. Ainsi, ils DOIVENT être connectés en réseau, et en utilisant ansible pour automatiser la configuration de tous les services dont chacun a besoin, chaque vm DOIT être accessible via ssh sur une adresse IP statique (de plus, même si le port ssh ne doit pas obligatoirement être 22, il doit être identique pour chaque vm, car ssh_port
est un paramètre global dans ansible; il ne peut en être autrement pour différents hôtes) et, enfin, il faut le faire sans graphique ni arrêter le démon ssh de l'hôte. Je fais la configuration sur un serveur distant, sans tête, auquel je ne peux accéder que via ssh et qui n'exécute pas de serveur X11.
J'adorerais que quelqu'un puisse m'aider à démarrer une machine virtuelle qui satisferait à ces exigences, mais honnêtement, je me contenterais de commencer ce foutu projet. J'essaie de démarrer un seul vm comme ceci:
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
Comme suggéré par plusieurs guides en ligne et réponses stackoverflow. Cependant, je ne trouve pas une seule personne ayant ce processus en échec avec l'erreur suivante:
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.
Ce qui est vraiment irritant, c’est que cela n’échoue pas si je ne l’exécute pas en tant que root (mais je ne peux pas l’exposer au réseau sans les autorisations root). Voici le résultat 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
Donc, il existe et c'est en hausse. J'ai aussi essayé d'autres périphériques réseau, qui génèrent cette erreur ou <device name> port vnet0 does not exist
, ce qui signifie que le périphérique n'existe pas (ce sont des conneries parce que c'est le périphérique que j'utilise pour me connecter via ssh à la machine). Si pour une raison quelconque il est impossible d'utiliser le virbr0
périphérique, cela me convient, car idéalement, une adresse IP statique doit être affectée à la machine sur l'interface "principale", afin que je puisse entrer directement en ssh à partir de mon ordinateur personnel.
TL; DR: virt-install
renvoie l'erreur ListActivatableNames: Connection is closed
pour le pont virtuel par défaut, et googler uniquement le nom de ce service ne génère littéralement aucun résultat. Qu'est-ce que?
EDIT: Je voulais inclure cela, mais j'ai oublié: la sortie de sudo virsh net-list --all
:
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes