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


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