Как создавать ВМ с консоли

kvm console

Как запустить копию уже созданной ВМ на другом гипервизоре

  1. копирую базовый имидж из каталога /var/lib/kvm/instances/_base
    scp -rp sil@10.0.10.51:/var/lib/kvm/instances/_base/ubuntu-16.04-server-amd64 .
    
  2. копирую файл ВМ из каталога /var/lib/kvm/instances
    scp -rp [sil@10.0.10.51:/var/lib/kvm/instances/controller-1 controller-2](mailto:sil@10.0.10.51:/var/lib/kvm/instances/controller-1controller-2)
    
    или создать новый имидж ВМ на базе существующего базового:
    qemu-img create -f qcow2 -b /var/lib/kvm/instances/_base/ubuntu-16.04-server-amd64 /var/lib/kvm/instances/haproxy-1
    
  3. копирую xml-файл с описанием ВМ
    scp -rp root@10.0.10.51:/etc/libvirt/qemu/controller-1.xml /etc/libvirt/qemu/controller-2.xml
    
  4. меняем uuid и name в файле /etc/libvirt/qemu/controller-2.xml

для генерирования uuid применим утилиту uuidgen

для MAC-адреса:

openssl rand -hex 6 | sed 's/(..)/1:/g; s/:$//'
5. регистрируем ВМ
virsh define controller-2.xml
6. проверим, что ВМ зарегистрирована
root@dc-comp-02:/etc/libvirt/qemu# virsh list –all

-     controller-2                  shut off
7. запускаем ВМ
virsh start controller-2
8. Добавить параметр в загрузчик:
#vi /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=«quiet splash console=ttyS0»

#sudo update-grub
9. входим в ВМ по консольному порту:
virsh console controller-2
10. предустановленный пароль суперпользователя ubuntu: ubuntu

сами диски машин создаются так

qemu-img create -f qcow2 -b /var/lib/kvm/instances/_base/ubuntu-16.04-server-amd64 /var/lib/kvm/instances/haproxy-1

Файл controller-3.xml

<domain type='kvm' id='189'>
  <name>controller-3</name>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-wily'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/kvm/instances/controller-3'/>
      <target dev='hda' bus='ide'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='rtl8139'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/30'/>
      <target type='isa-serial' port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/30'>
      <source path='/dev/pts/30'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </memballoon>
  </devices>
<backingStore type='file' index='1'>
        <format type='qcow2'/>
        <source file='/var/lib/kvm/instances/_base/ubuntu-16.04-server-amd64'/>
        <backingStore/>
</domain>