RHEL/OL/Cent: VirtualBox 6 + phpvirtualbox

от автора

в

Так получилось, что на работе под Виртуальные Машины(ВМ) Asterisk’a используется виртуализация VirtualBox.
Хочу отметить ранее с серверным решением от VirtualBox не работал.
В один прекрасный день сотрудник отвечающий за администрирование данных тачек отсутствовал, а нам необходимо было увеличить ресурс ОЗУ и CPU. Нашел документацию…прочитал…все понятно все прозрачно… нашел конфиги приготовился отключать ВМ (согласовал отключение)… какого было мое удивление когда я из под root’a не смог стопнуть ВМ = )… иИи даже больше (как выяснилось позже) ЛЮБОЙ командой из под root учетной записи вешается менеджер управления ВМ! но ВМ продолжают работать. Для решения данной проблемы необходимо убить демон ВМ и после запустить из под ранее созданного пользователя для VirtualBox.
В новой 6й версии не тестировал.
PS: конечно если Вы изначально настроите запуск из под root’a таких проблем не должно быть.

Задача такая. Поставить сервер виртуальных машин под управлением VirtualBox + Web морду для удобства администрирования VBox.

Устанавливаем Oracle Linux 7.4 Server

Проверяем/устанавливаем обновления и необходимые пакеты

yum update -y
reboot
yum install nano unzip wget gcc kernel-headers kernel-devel kernel-uek-devel
yum update -y # еще раз проверяем/устанавливаем обновления и зависимости
reboot

Link Aggregation

**ВИКИ** Агрегирование каналов (link aggregation) — технологии объединения нескольких параллельных каналов передачи данных в сетях Ethernet в один логический, позволяющие увеличить пропускную способность и повысить надёжность.

Так как это сервер виртуальных машин не забываем подумать о сети.
Как настроить Агрегирование каналов на Oracle Linux?

Устанавливаем VirtualBox

Добавляем репозиторий

cd /etc/yum.repos.d
wget https://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Устанавливаем VirtualBox 6.0 / импортируем ключ GPG, а также система предложит установить кучу зависимостей…устанавливаем и идем дальше

yum install VirtualBox-6.0

Vbox установлен.
Запускаем VirtualBox.

service vboxdrv setup
service vboxdrv start

Сразу скачаем и установим Extension Pack.

cd /tmp/
wget https://download.virtualbox.org/virtualbox/6.0.0/Oracle_VM_VirtualBox_Extension_Pack-6.0.0.vbox-extpack
vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.0.0.vbox-extpack
...
Do you agree to these license terms and conditions (y/n)? y
License accepted. For batch installaltion add
--accept-license=56be48f923303c8cababb0bb4c478284b688ed23f16d775d729b89a2e8e5f9eb
to the VBoxManage command line.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".

Переходим к установке/настройке web морды.

Устанавливаем web server, запускаем и включаем автозапуск.

yum install httpd
systemctl start httpd
systemctl enable httpd

Правила для firewall

firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --add-service=https
firewall-cmd --zone=public --permanent --add-service=https

Устанавливаем php и необходимые плюшки к нему

yum install php php-gd php-common php-soap

Создадим пользователя/задаем пароль(PasswordBox) и добавим пользователя vbox в группу vboxusers

adduser vbox
passwd vbox
usermod -a -G vboxusers 'vbox'

Скачиваем phpvirtualbox / распаковываем / перемещаем файлы

cd /tmp
wget https://github.com/phpvirtualbox/phpvirtualbox/archive/develop.zip
unzip develop.zip
mv phpvirtualbox-develop/* /var/www/html/

Установим запуск VirtualBox web service от пользователя vbox

echo "VBOXWEB_USER=vbox" > /etc/default/virtualbox

Перезапускаем vboxweb-service

systemctl restart vboxweb-service

Установим policycoreutils-python – базовый набор утилит для работы с SELinux и добавим правило позволяющее phpVirtualBox подключаться к веб-службе VirtualBox.

yum install policycoreutils-python -y
semanage port -a -t http_port_t -p tcp 18083

Далее правим конфигурационный фаил phpVirtualBox

cp /var/www/html/config.php-example /var/www/html/config.php
nano /var/www/html/config.php

Редактируем строки:

var $username = 'vbox'; # ранее созданный пользователь
var $password = 'PasswordBox'; # пароль от пользака
var $vrdeaddress = '192.168.13.125'; # 
Раскомментировать 
var $consoleHost = '192.168.13.125'; # IP адрес для управления через консоль

service httpd restart

В данном примере IP адрес моего сервера 192.168.13.125

В браузере переходим по адресу http://192.168.13.125/
Username: admin
Password: admin

Для подключения к ВМ через консоль необходимо установить Adobe Flash Player, а также для управления ВМ через RDP необходимо добавить правило firewall

firewall-cmd --zone=public --add-port=9000-9100/tcp
firewall-cmd --zone=public --permanent --add-port=9000-9100/tcp

Готово =)