Настраивали ли вы виртуализацию вручную?

«Настраивали ли вы виртуализацию вручную?» — вопрос из категории Виртуализация, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в начале карьеры и для специфических задач активно работал с ручной настройкой виртуализации на базе KVM (Kernel-based Virtual Machine) на Linux.

Типичные задачи, которые я выполнял:

  1. Установка и настройка хоста:

    # Установка необходимых пакетов на Ubuntu/Debian
    sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
    # Добавление пользователя в группу libvirt
    sudo usermod -aG libvirt $USER
  2. Создание сетевого моста (bridge) для прямой сетевой доступности ВМ: Редактировал /etc/netplan/01-netcfg.yaml или /etc/network/interfaces для создания моста br0 вместо прямого назначения IP на физический интерфейс.

  3. Создание виртуальной машины через CLI с помощью virt-install:

    virt-install 
      --name vm-ubuntu-server 
      --ram 2048 
      --vcpus 2 
      --disk path=/var/lib/libvirt/images/vm-ubuntu.qcow2,size=20,format=qcow2 
      --os-type linux 
      --os-variant ubuntu22.04 
      --network bridge=br0 
      --graphics none 
      --console pty,target_type=serial 
      --location 'http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/' 
      --extra-args 'console=ttyS0,115200n8 serial'

    Этот метод позволял автоматизировать создание ВМ через скрипты.

  4. Управление ВМ через virsh:

    virsh list --all          # Список всех ВМ
    virsh start vm-ubuntu-server # Запуск
    virsh shutdown vm-ubuntu-server # Корректное выключение
    virsh destroy vm-ubuntu-server # Принудительная остановка
    virsh edit vm-ubuntu-server # Редактирование конфигурации

Этот опыт дал глубокое понимание работы гипервизоров, виртуальных сетей и хранения, что позже очень помогло при работе с облачными провайдерами и контейнеризацией.