Всем привет! Решил поделиться опытом создания гипервизора на базе Ubuntu server 14.04 LTS и бесплатной виртуальной машине virtualbox 5.2 с вэб-интерфейсом управления как самим сервером (webmin), так и виртуальными машинами (phpvirtualbox). В сети можно найти кривоватую инструкцию по поднятию вышесказанного на ubuntu server 16.04, но эта инструкция морально устарела и предлагает версию virtualbox 5.0-5, не смотря на то, что в 16.04 в официальных репозиториях уже давно прижилась версия 5.2. Тут мы это все исправим. Данная инструкция применима как к ubuntu server 14.04, так и к 16.04. На более свежих версиях не проверял, но подозреваю что так же будет работать. Итак, начнем.

1. Для начала после установки ubuntu следует обновить все пакеты и ядро:

sudo apt-get -y update && sudo apt-get -y dist-upgrade

2. Затем перезагрузимся:

sudo reboot now

3. Теперь пересоздадим sources.list с добавлением необходимых репозиториев (для 14.04, если у вас версия выше — придется ручками править trusty на ваше кодовое имя (кроме webmin, он всегда sarge)). Для удобства зайдите под root:

su
или
sudo -i

4. Затем бекапим sources.list и создаем чистый:

cd /root
mv /etc/apt/sources.list /etc/apt/sources.list.bak
touch /etc/apt/sources.list
nano /etc/apt/sources.list

5. В новый файл sources.list вставляем это:

# 
deb http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
deb http://ru.archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty universe
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb http://ru.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main restricted
deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe
deb http://security.ubuntu.com/ubuntu trusty-security multiverse
deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse
deb http://archive.canonical.com/ubuntu trusty partner
deb-src http://archive.canonical.com/ubuntu trusty partner
## deb http://extras.ubuntu.com/ubuntu trusty main
## deb-src http://extras.ubuntu.com/ubuntu trusty main
deb https://download.webmin.com/download/repository sarge contrib
deb http://download.virtualbox.org/virtualbox/debian trusty contrib

6. Скачиваем и устанавливаем ключи:

wget http://www.webmin.com/jcameron-key.asc
wget https://www.virtualbox.org/download/oracle_vbox_2016.asc
wget https://www.virtualbox.org/download/oracle_vbox.asc
apt-key add jcameron-key.asc
apt-key add oracle_vbox.asc
apt-key add oracle_vbox_2016.asc
apt-get update

7. Устанавливаем необходимые пакеты:

apt-get install mysql-server apache2 php-soap webmin mc unzip traceroute
apt-get install virtualbox-5.2

8. Добавляем пользователя:

usermod -aG vboxusers {имя пользователя}

Важно! Используйте имя пользователя, имеющегося в системе, ибо именно от него будут запускаться виртуальные машины.
9. Далее скачаем и установим Extension Pack:

wget https://download.virtualbox.org/virtualbox/5.2.20/Oracle_VM_VirtualBox_Extension_Pack-5.2.20.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.20.vbox-extpack

10. Осталось дело за вебмордой, скачиваем и устанавливаем:

wget https://github.com/phpvirtualbox/phpvirtualbox/archive/5.2-0.zip
unzip 5.2-0.zip
mv phpvirtualbox-5.2-0 /var/www/html/phpvirtualbox

11. Назначим владельца и права:

chown -R www-data:www-data /var/www/html/phpvirtualbox
chmod -R 755 /var/www/html/phpvirtualbox

12. Теперь скопируем и отредактируем конфиг:

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

13. В открывшемся конфиге нас интересуют только 2 строчки, а именно

var $username = 'user';
var $password = 'password';

сюда вносим реальные имя пользователя и пароль от учетки, указанной в пункте 8.

14. Создаем и редактируем файл /etc/default/virtualbox:

nano /etc/default/virtualbox
и добавляем туда
VBOXWEB_USER={имя пользователя из пункта 8}

15. Перезагружаемся:

reboot now

Если все прошло успешно, то после перезагрузки по адресу http://{ip адрес сервера}/phpvirtualbox будет доступен интерфейс управления виртуальными машинами, а по адресу https://{ip адрес сервера}:10000 будет доступен webmin — мощный интерфейс управления сервером. Для входа в интерфейс управления виртуальными машинами используйте стандартный логин и пароль admin:admin (меняется в самом интерфейсе), а для авторизации в webmin используйте учетную запись реального пользователя с правами root (можно и непосредственно root, если вы его разблокировали).

Комментарии (15)


  1. Shaz
    27.10.2018 17:04
    +4

    Webmin virtualbox и ubuntu 14.04.
    За что вы так ненавидите людей?


    1. dani
      27.10.2018 21:07

      Вот вы шутите, а мне приходится после таких инструкций это в продакшене видеть.


    1. Stealch Автор
      27.10.2018 21:09
      -3

      Не нравится — не ешь =)) Работает вполне адекватно, поднимается быстро, особых знаний не требует — все копипастом, что еще надо?


      1. Shaz
        27.10.2018 21:15

        Какие задачи оно решает?


      1. dani
        27.10.2018 21:33
        +2

        Мрак, кошмар, тлен, уныние… Стивен Кинг ИТ мира просто


      1. Shaz
        27.10.2018 22:07
        +1

        А точно именно эта команда добавляет пользователя? А какого пользователя? А куда добавит?

        usermod -aG vboxusers {имя пользователя}


        А в чем смысл установки 14 версии убунты и последующего
        sudo apt-get -y dist-upgrade
        Что мы получим на выходе?


        1. Alexsey
          27.10.2018 23:21

          А в чем смысл установки 14 версии убунты и последующего
          sudo apt-get -y dist-upgrade
          Что мы получим на выходе?


          dist-upgrade, не смотря на название команды, это немного иная вариация обычного upgrade. Обновление до новой версии системы делается совсем иначе.


  1. inkvizitor68sl
    27.10.2018 19:18
    +3

    С релиза 14.04 прошло уже 4.5 года, относительно скоро у неё EOL наступит.


    1. Stealch Автор
      27.10.2018 21:13
      -4

      Ну и пусть, как я и писал — инструкция применима к свежим версиям, пусть с некоторыми правками, но в основном все так же. Да и 14.04 у меня молотит без остановки месяцами без сбоев, чего не могу сказать о 16.04. 18.04 еще не пробовал, но учитывая основные тенденции — стоит еще подождать пока баги пофиксят.


      1. Alexsey
        27.10.2018 23:28

        У меня что 16.04, что 18.04 (после апгрейда со все той же 16.04) работает без каких-либо сбоев и проблем. Ребутится только когда электричество пропадает.


  1. ximik666
    27.10.2018 20:59
    +1

    Может лучше разобраться с Proxmox?


    1. Stealch Автор
      27.10.2018 21:16
      -1

      Вполне возможно. Статья написана как инструкция для быстрого поднятия с минимальными затратами, возможно в будущем займусь.


    1. dani
      27.10.2018 21:30
      +1

      С чем там разбираться то? Разве что с openvswitch, но судя по инструкции автору это не нужно.


  1. vvpoloskin
    27.10.2018 22:15
    +2

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


  1. Wowan4ikuz
    29.10.2018 12:18

    А как вам аналогичное решение на Xen из коробки от openSUSE?! Помнится этак лет 5 назад (когда я ещё занимался Unix'ами), это уто было доступно и достаточно просто в развертывании.