Вопрос или проблема
Как настроить безголевую виртуальную машину, например сервер Ubuntu, на безголевом сервере Linux KVM, который не имеет графического интерфейса?
Я уже видел это на reddit: Как запустить KVM ВМ на безголевом сервере Linux без графического интерфейса?
Я также уже видел этот учебник на youtube: Как завершить установку ВМ на безголевом сервере Linux
Однако, согласно вышеупомянутым источникам, похоже, что вам нужен другой компьютер, а именно настольный компьютер, для удаленного доступа к безголевому KVM с помощью X Forwarding, чтобы продолжить установку; то есть для ответа на подсказки (выбор языка, настройки клавиатуры и т. д.) вам все равно потребуется графический интерфейс.
Как можно установить виртуальную машину на безголевом сервере, используя только командный интерфейс (CLI)?
Ответ или решение
Для развертывания виртуальной машины на бездисковом сервере Linux с KVM, без использования отдельного компьютера с графическим интерфейсом, можно воспользоваться инструментами командной строки. Вот пошаговая инструкция, как это сделать:
Шаг 1: Подготовка сервера
-
Убедитесь, что KVM установлен:
Убедитесь, что ваш сервер поддерживает аппаратную виртуализацию и что KVM установлен. Введите следующие команды для установки необходимых пакетов:sudo apt update sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
-
Проверка установки:
После установки проверьте, что KVM работает:sudo systemctl status libvirtd
Убедитесь, что статус активен.
Шаг 2: Создание образа для установки
-
Скачайте образ:
Загрузите ISO-образ, например, Ubuntu Server, и сохраните его в каталоге, доступном для KVM. Например:wget https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso -P /var/lib/libvirt/images/
Шаг 3: Создание виртуальной машины
-
Создайте виртуальную машину:
Используйте командуvirt-install
для создания виртуальной машины:sudo virt-install \ --name ubuntu-vm \ --ram 2048 \ --disk path=/var/lib/libvirt/images/ubuntu-vm.img,size=20 \ --vcpus 2 \ --os-type linux \ --os-variant ubuntu22.04 \ --network network=default \ --graphics none \ --console pty,target_type=serial \ --location /var/lib/libvirt/images/ubuntu-22.04-live-server-amd64.iso \ --initrd-inject=/path/to/seed.iso \ --extra-args='console=ttyS0,115200n8 serial'
Параметры:
--name
: имя вашей виртуальной машины.--ram
: количество ОЗУ (в Мб) для VM.--disk
: путь к образу диска и его размер (в Гб).--vcpus
: количество виртуальных процессоров.--os-type
и--os-variant
: тип и версия ОС.--network
: настройки сети (обычноdefault
).--graphics none
: отключение графического интерфейса.--console
: настройка консоли, чтобы подключиться через терминал.--location
: путь к ISO-образу.--initrd-inject
: путь к файлу конфигурации (если необходимо).--extra-args
: аргументы для ядра, включая настройки консоли.
Шаг 4: Установка и настройка
-
Установка через консоль:
После запуска командыvirt-install
, вы можете подключиться к консоли виртуальной машины черезvirsh
.sudo virsh console ubuntu-vm
Теперь вы можете выполнять установку Ubuntu через терминал, отвечая на все вопросы, которые обычно задаются во время графической установки.
Шаг 5: Завершение установки
- Завершите установку:
Следуйте инструкциям установщика, чтобы завершить установку. После этого вы сможете перезагрузить виртуальную машину и подключаться к ней по SSH.
Шаг 6: Управление виртуалкой
-
Управление виртуальной машиной:
Для управления виртуальными машинами используйтеvirsh
:sudo virsh list --all # Показать все виртуальные машины sudo virsh start ubuntu-vm # Запустить виртуальную машину sudo virsh shutdown ubuntu-vm # Выключить виртуальную машину
Таким образом, используя только командную строку, вы сможете создать и управлять виртуальной машиной на бездисковом сервере с KVM.