Создаем сервер Qemu-KVM с управлением через Cockpit

В данной заметке рассматривается вопрос быстрого поднятия гипервизора Qemu-KVM на базе CentOS 7 с удобным управлением сервера. В качестве интерфейса управления будет Cockpit.

Cockpit по умолчанию включен в CentOS 8, но его нет в 7-ке.

Итак, имеем сервер с установленным CentOS 7, включен Firewall и SELinux.

Проверим включена ли поддержка виртуализации:

egrep -c '(vmx|svm)' /proc/cpuinfo

Если ответ положительное число (больше нуля), то включена.

Установим гипервизор, библиотеки, утилиты управления и пакет для работы с bridge:

yum install qemu-kvm libvirt virt-install bridge-utils

Установим Cockpit:

yum install cockpit cockpit-networkmanager cockpit-dashboard cockpit-storaged cockpit-packagekit cockpit-docker cockpit-machines cockpit-selinux

Кроме основных пакетов ставим пакеты управления хранилищами, пакетами, виртуальными машинами, контенерами docker и selinux.

Поддерживаемые расширения для Cockpit — https://cockpit-project.org/applications.html

Запустим:

systemctl enable --now cockpit.socket

Настройки firewall:

firewall-cmd --permanent --add-service=cockpit
firewall-cmd --reload

Дальнейшие настройки будет производить через веб: https://ip.address:9090

Создаем bridge для соединения виртуальных машин к сети:

После создания bridge основное сетевое подключение исчезнет.

Перейдем на вкладку Virtual Machines и запустим гипервизор:

Можно создавать виртуальные машины. Список поддерживаемых гостевых ОС можно посмотреть:

osinfo-query os

Создадим ВМ на Debian:

Из минусов не нашел редактора конфигурации ВМ, но есть классический путь:

virsh edit {vm_name}

Рассмотрим еще одну возможность управления через Cockpit контейнерами:

Создадим контейнер c Nginx:

Запустим и настроим порт

Тут же можно управлять лимитами и рессурсами для контейнера.

Наш Nginx будет доступен по адресу сервера на порту 8080.

Данное решение, конечно, не покрывает все необходимые задачи управления гипервизором, но простые вещи, такие как создание, удаление, остановка и перезапуск ВМ вполне могут быть закрыты через простой и понятный веб-интерфейс.

Для того чтоб не root пользователь мог совершать действия с виртуальными машинами, необходимо его включить в соотвествующие группы:

usermod -aG libvirt $USER
usermod -aG kvm $USER

Аналогично для Docker:

usermod -aG docker $USER
Top