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


Виртуализация серверов и рабочих станций в Windows и Linux - Hiperv, KVM, VMWare
bridge kvm kvm libvirt libvirt libvirt-bin qemu ubuntu управление
 
 

* В этом блоге я описываю свою повседневную рабочую практику, поэтому все статьи в блоге написаны лично мной и при копировании их на свой сайт пожалуйста указывайте ссылку на страницу откуда вы скопировали.
* Если какая-то статья вам помогла, то вы можете дать мне немного денег вместо простого спасибо (ссылка на форму поддержки проекта внизу страницы), если вы что-то не поняли или у вас что-то не получается, то вы можете нанять меня и я вам все подробно расскажу (расценки и ссылки в конце статьи).


(последние правки 1 месяц)

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

Если вы собираетесь стоить свой собственный кластер виртуализации на базе 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

 

Моя официальная страница на FaceBook
Мой микроблог в твиттер

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


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .