Подготовка KVM-Libvirt инфраструктуры (удаленное подключение с поддержкой авторизации)

Сегодня я расскажу и покажу как настроить удаленное управление гипервизором KVM/Qemu. Одним из ключевых моментов построения современных систем виртуализации ориентированных на продакшн-использование является централизованное управление и естественно, что централизация управления достигается использованием API. Одним из API для управления гипервизорами KVM/Qemu является Libvirt и стоит отметить, что эта библиотека, позволяет управлять не только KVM/Qemu, но и LXC.

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 26 Май 2018 (последние правки 1 месяц)

apt-get install kvm libvirt tar ubuntu

Если вы собираетесь стоить свой собственный кластер виртуализации на базе Opensource компонентов, то пора задуматься о удаленном управлении виртуальными машинами на узлах кластера и я конечно исхожу из предположения, что этих самых узлов у вас несколько ведь в противном случае вам вполне подойдет Virtualbox который как раз и предназначен для Desktop-виртуализации.

Сегодня мы будем настраивать удаленное управление узлом гипервизора построенного на базе Opensource-технологий KVM/Qemu и начнем мы как обычно с установки необходимых пакетов:

# apt-get install qemu-kvm libvirt-bin
# apt-get install ubuntu-vm-builder bridge-utils

Разрешаем удаленные подключения к Libvirt.

Для разрешения удаленных подключений к libvirt, необходимо в файле /etc/libvirt/libvirtd.conf установить параметры:

listen_tls = 0
listen_tcp = 1
listen_addr = "0.0.0.0"
tcp_port = "16509"

И в файле /etc/default/libvirt-bin добавить опцию:

libvirtd_opts="-l"

Перезапускаем сервис libvirt-bin:

# /etc/init.d/libvirt-bin restart

Проверяем, что удаленные подключения принимаются:

$ telnet 10.248.0.1 16509 
Trying 10.248.0.1... 
Connected to 10.248.0.1. 
Escape character is '^]'.

Настраиваем авторизацию.

По умолчанию в Libvirt теперь используется Kerberos, но это слишком круто и мы переключаемся на старый добрый sasl, для чего устанавливаем пакет поддержки sasl-авторизации:

# apt-get install sasl2-bin 

В файле /etc/libvirt/libvirtd.conf устанавливаем параметр:

auth_tcp = "sasl"

А в файле /etc/sasl2/libvirt.conf меняем параметр:

mech_list: digest-md5

Создаем пользователя который сможет удаленно управлять libvirt и соответственно KVM/QEMU:

# saslpasswd2 -a libvirt virtmanager

Перезапускаем сервис libvirt-bin и пробуем подключиться удаленно при помощи графического менеджера виртуальных машин.

Удаленное подключение к libvirt

Так же можно подключиться к libvirt из консоли Linux:

$ virsh -c qemu+tcp://10.1.1.73/system

Теперь мы можем удаленно управлять гипервизором.

Удаленное управление Libvirt

 

Похожие статьи

Создание сети типа мост для платформы виртуализации KVM при помощи Libvirt

Создание сети типа мост для платформы виртуализации KVM при помощи Libvirt

Если вы используете в своей работе менеджер виртуальных машин virt-manager, то вы наверное обращали внимание, что при создании сети вы не можете выбрать режим работы сети в виде добавления интерфейсов в существующий сетевой мост, но так как в основе этого менеджера лежит KVM и Libvirt, то мы всегда можем выполнить эту операцию в ручную из консоли.


Обзор open source платформы управления фермой виртуализации KVM (новое в WebVirtCloud)

Обзор open source платформы управления фермой виртуализации KVM (новое в WebVirtCloud)

Как верно подметили читатели моего блога, я конечно рассказал как установить WebVirtCloud, но не рассказал, чем же она так кардинально отличается от того же Proxmox например, да и немного скриншотов бы тоже не помешало. Я в свою очередь наверное даже пойду дальше и подготовлю небольшое видео, где продемонстрирую создание нескольких виртуальных машин и покажу некоторые новые фишки WebVirtCloud.


Создание фермы виртуализации на базе KVM/QEMU с WEB-интерфейсом управления WebVirtManager

Создание фермы виртуализации на базе KVM/QEMU с WEB-интерфейсом управления WebVirtManager

Так как мне надо подготовить для портфолио несколько описаний выполненных проектов, то пожалуй начну с построения фермы виртуализации на базе OpenSource решений без использования Proxmox и т.п. Стоит отметить, что мне удалось создать полноценную ферму виртуализации из исключительно Open Source компонентов и мигрировать на построенное решение около 100 виртуальных машин на которых производилась разработка и тестирование программного обеспечения.


Настройка OS Windows для работы в UTC time (проблема с локальным временем виртуальной машины в системе виртуализации KVM)

Настройка OS Windows для работы в UTC time (проблема с локальным временем виртуальной машины в системе виртуализации KVM)

Ничего против Windows не имею и считаю, что для каждой задачи требуется свой инструмент, но некоторые легаси-вещи там тянутся из из совсем уже глубины веков и я сейчас говорю не про поддержку кодировки UTF-8, сейчас с этим дела обстоят немного лучше, а про часы системы которые все еще не в UTC. И это кстати сказать порождает некоторые нетривиальные баги при виртуализации ОС Windows в KVM.


Запуск узла KVM-фермы WebVirtCloud (Ввод в эксплуатацию тестового сервера Metatron)

Запуск узла KVM-фермы WebVirtCloud (Ввод в эксплуатацию тестового сервера Metatron)

Как вы наверное знаете я активно использую в работе консоль управления гипервизорами KVM которая называется WebVirt Cloud. Она гарантированно OpenSource с исходными кодами которые я активно переделываю под себя и сегодня я хотел рассказать как в нее добавить одну ноду.


Использование QEMU/KVM для установки операционной системы на физический диск

Использование QEMU/KVM для установки операционной системы на физический диск

Сегодня в очередной раз мне понадобилось производить множественные операции с физическим жестким диском и если бы я по честному использовал установочные носители и инструментарий тестирования, то мне пришлось бы раз 30 перезагрузить компьютер. Мало того, что мне потребовалась бы для этого выделенная рабочая станция, так и времени бы это заняло гораздо больше.


Отзывы и комментарии