Как создать шаблон виртуальной машины для дистрибутивов CentOS / Fedora / RHEL Linux на KVM?
Я люблю KVM и использую его для всех своих домашних машин виртуализации.
KVM – это решение для полной виртуализации с открытым исходным кодом для Linux на оборудовании x86, содержащее расширения виртуализации (Intel VT или AMD-V).
Шаблон VM – это основная копия экземпляра виртуальной машины, из которой вы можете клонировать, преобразовывать или развертывать больше виртуальных машин.
Шаблоны виртуальных машин более полезны при развертывании большого количества похожих виртуальных машин, которые требуют согласованности при развертывании.
Если что-то пойдет не так в экземпляре, созданном из шаблона, вы можете клонировать новую виртуальную машину из шаблона с минимальными усилиями.
Шаг 1: Установите KVM
Установите KVM в вашей системе Linux, обратившись к соответствующей статье из списка ниже.
- VMware KVM мод на VMware Workstation
- Как установить KVM на RHEL 8
- Установка и настройка KVM (интерфейс Мост) на CentOS 7 / RHEL 7Включить UEFI для QEMU KVM на Fedora
Служба KVM (libvirtd) должна быть запущена и включена для запуска при загрузке системы.
sudo systemctl start libvirtd sudo systemctl enable libvirtd
Включите модуль ядра vhost-net в Ubuntu / Debian.
sudo modprobe vhost_net echo vhost_net | sudo tee -a /etc/modules
Шаг 2: Создайте CentOS / Fedora / RHEL VM
Прежде чем мы сможем создать базовый шаблон, нам нужно установить сервер CentOS / Fedora или RHEL Linux.
Я рекомендую вам сохранить небольшой размер диска для установки базовой ОС.
В этом руководстве будет продемонстрирована установка виртуальной машины CentOS 7 на KVM с использованием инструмента командной строки virt-install.
1. Создайте образ виртуальной машины объемом 10 ГБ с помощью qemu-img.
$ sudo qemu-img create -o preallocation=metadata -f qcow2 /var/lib/libvirt/images/centos.qcow2 10G Formatting '/var/lib/libvirt/images/centos.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 preallocation=metadata lazy_refcounts=off refcount_bits=16
2. Начните установку базовой операционной системы.
sudo virt-install --virt-type kvm --name centos7 --ram 1024 \ --disk /var/lib/libvirt/images/centos.qcow2,format=qcow2 \ --network network=default \ --graphics vnc,listen=0.0.0.0 --noautoconsole \ --os-type=linux --os-variant=rhel7.0 \ --location=/home/jmutai/iso/CentOS-7-x86_64-Minimal-1810.iso
Замените:
- centos7 именем базового экземпляра.
- /var/lib/libvirt/images/centos.qcow2 путем к образу диска
- /home/jmutai/iso/CentOS-7-x86_64-Minimal-1810.iso путем к вашему ISO-файлу
- default именем сети KVM
При запуске установки вы должны получить вывод:
Starting install...
Setting input-charset to 'UTF-8' from locale.
Retrieving file vmlinuz... | 6.3 MB 00:00:00
Setting input-charset to 'UTF-8' from locale.
Retrieving file initrd.img... | 50 MB 00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
Откройте свой Virt Manager, чтобы завершить установку.
Для установки из консоли используйте следующие команды
sudo virt-install --virt-type kvm --name centos7 --ram 1024 \
--disk /var/lib/libvirt/images/centos.qcow2,format=qcow2 \
--network network=default \
--os-type=linux --os-variant=rhel7.0 \
--location=/home/jmutai/iso/CentOS-7-x86_64-Minimal-1810.iso \
--graphics none \
--console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial'
Проверьте и установите параметры установки:
Шаг 3: Подготовьте шаблон CentOS / Fedora / RHEL VM
1. Обновление системы
После завершения установки виртуальной машины войдите в экземпляр и обновите все системные пакеты до последних версий.
sudo yum -y update
2. Установите стандартные базовые пакеты, отсутствующие в системе:
sudo yum install -y epel-release vim bash-completion wget curl telnet net-tools unzip lvm2
3. Установите пакеты acpid и cloud-init.
sudo yum -y install acpid cloud-init cloud-utils-growpart sudo sudo systemctl enable --now acpid
4. Отключить маршрут zeroconf
echo "NOZEROCONF=yes" | sudo tee -a /etc/sysconfig/network
5. Настройте GRUB_CMDLINE_LINUX – для использования Openstack.
Если вы планируете экспортировать шаблон в сервис образов Openstack Glance, отредактируйте файл /etc/default/ grub и настройте параметр GRUB_CMDLINE_LINUX.
Ваша строка должна выглядеть так: удалите rhgb quiet и добавьте console = tty0 console = ttyS0,115200n8.
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=tty0 console=ttyS0,115200n8"
Создайте конфигурацию grub.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
6. Установите другие необходимые вам пакеты в базовом шаблоне.
7. По завершении выключите виртуальную машину.
sudo poweroff
Шаг 4: Очистите шаблон виртуальной машины
Вам нужен инструмент virt-sysprep для очистки экземпляра.
sudo virt-sysprep -d centos7
Вывод:
Отмените определение домена libvirt после очистки виртуальной машины.
$ sudo virsh undefine centos7 Domain centos7 has been undefined
Ваш шаблон виртуальной машины KVM готов к использованию.