Jak stworzyć maszynę wirtualną od zera za pomocą virsh?

24

Wygląda na to, że nie można utworzyć nowej maszyny wirtualnej za pomocą virsh, chyba że masz już działający plik XML.

Właśnie zainstalowałem wszystkie potrzebne bity do działania QEMU-KVM i muszę teraz utworzyć moją pierwszą maszynę wirtualną.

Jak?

Wskazówka: nie mam grafiki!

EnzoR
źródło
Hej, tylko przeglądam kilka pytań. Jak sobie z tym poradziłeś?
I_GNU_it_all_along 11.11.16
Rozwiązałem problem, sprawdzając strony podręcznika i oficjalne strony QEMU i KVM oraz szereg testów i prób. Poprosiłem o ręczne wykonanie wszystkiego, zamiast tego mam odpowiedzi, jak to zrobić w aplikacjach innych firm. Już prawie skończyłem i jak najszybciej opublikuję moje działające rozwiązania.
EnzoR,
1
@I_GNU_it_all_along Twoja jest jedyną znaczącą odpowiedzią / komentarzem, jaką do tej pory otrzymałem.
EnzoR
1
Wielkie dzięki. Przykro mi, ale nie mogłem więcej pomóc w ręcznej instalacji.
I_GNU_it_all_along
1
@I_GNU_it_all_along Uważam, że ten wstępnie przygotowany plik XML jest naprawdę denerwujący. Nie sądzę, żebym był głupią małpą, jeśli chcę zrozumieć. Problem z materiałami opartymi na libvrtd polega na tym, że jest za mało dokumentacji i wszyscy wydają się całkiem dobrze z podejściem czarnej skrzynki. Wielkie dzięki.
EnzoR

Odpowiedzi:

36

Jest całkiem dobra solucja tutaj . Zasadniczo narzędziem, którego chcesz użyć, jest instalacja virt, którą powinieneś już mieć, jeśli zainstalowałeś wszystko, co potrzebne do QEMU-KVM. Oto najbardziej odpowiednia sekcja.

6. Tworzenie nowej maszyny wirtualnej gościa za pomocą virt-install

Narzędzie virt-install służy do tworzenia maszyny wirtualnej. Tego narzędzia można używać zarówno w trybie interaktywnym, jak i nieinteraktywnym.

W poniższym przykładzie przekazałem wszystkie wymagane wartości, aby utworzyć maszynę wirtualną jako parametry wiersza polecenia do polecenia virt-install.

# virt-install \
-n myRHELVM1 \
--description "Test VM with RHEL 6" \
--os-type=Linux \
--os-variant=rhel6 \
--ram=2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10 \
--graphics none \
--cdrom /var/rhel-server-6.5-x86_64-dvd.iso \
--network bridge:br0

W powyższym poleceniu virt-install parametry mają następujące znaczenie:

  • n: Nazwa twojej maszyny wirtualnej

  • description: Niektóre poprawne opisy twojej maszyny wirtualnej. Na przykład: serwer aplikacji, serwer bazy danych, serwer WWW itp.

  • os-type: Typem systemu operacyjnego może być Linux, Solaris, Unix lub Windows.

  • os-variant: Typ dystrybucji dla powyższego typu OS. Na przykład dla Linuksa może to być rhel6, centos6, ubuntu14, suse11, fedora6 itp.

    W przypadku systemu Windows może to być win2k, win2k8, win8, win7

  • ram: Pamięć dla maszyny wirtualnej w MB

  • vcpu: Całkowita liczba wirtualnych procesorów dla maszyny wirtualnej.

  • disk path=/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10: Ścieżka, w której przechowywane są pliki obrazu maszyny wirtualnej. Rozmiar w GB. W tym przykładzie ten plik obrazu maszyny wirtualnej ma 10 GB.

  • graphics none: To instruuje virt-install, aby używał konsoli tekstowej na porcie szeregowym VM zamiast graficznego okna VNC. Jeśli masz skonfigurowany xmanager, możesz zignorować ten parametr.

  • cdrom: Wskazuje lokalizację obrazu instalacyjnego. Możesz określić lokalizację instalacji NFS lub http (zamiast –-cdrom). Na przykład: --location=http://.com/pub/rhel6/x86_64/*

  • network bridge:br0: W tym przykładzie zastosowano zmostkowany adapter br0. Możliwe jest również utworzenie własnej sieci na dowolnym konkretnym porcie zamiast mostkowanego adaptera.

    Jeśli chcesz użyć NAT, użyj czegoś takiego jak poniżej dla parametru sieci o nazwie sieci wirtualnej znanej jako VMnetwork1. Wszystkie pliki konfiguracji sieci znajdują się w / etc / libvirt / qemu / networks / dla maszyn wirtualnych. Na przykład:

    –-network network=VMnetwork1

I_GNU_it_all_along
źródło
6
To raczej dziwne, że nie jest to wspomniane w większości dokumentacji, ale raczej zakładają, że masz już działającą maszynę wirtualną, kiedy prawdopodobnie czytasz samouczek właśnie dlatego, że nie. W każdym razie dzięki. :)
Teekin