VirtualBox. Создание и управление виртуальными машинами из консоли.

11:19

Имеем сервер, на котором нет графической среды, есть задача развернуть на нем несколько виртуальных серверов

 

устанавливаем Virtualbox

Для Ubuntu документацией рекомендовано иметь Dynamic Kernel Module Support (DKMS)

apt-get install dkms

Скачиваем с http://www.virtualbox.org/ наиболее подходящий пакет. Для 10.10 virtualbox-3.2_3.2.10-66523~Ubuntu~maverick_i386.deb

dpkg -i /путь/virtualbox-3.2_3.2.10-66523~Ubuntu~maverick_i386.deb

он скажет что надо доустановить и пометит для установки пакеты

apt-get -f install

установит все пакеты

 

создаем гостя с именем ubuntu_srv001

VBoxManage createvm --name "ubuntu_srv001" --register

Конфигурация гостя

VBoxManage modifyvm "ubuntu_srv001" --memory 256 --acpi on --boot1 dvd --nic1 bridged

тип ОС — Ubuntu Линукс (смотреть типы VBoxManage list ostypes )

VBoxManage modifyvm "ubuntu_srv001" --ostype ubuntu

Создаем фиксированный жесткий диск 7Гб для гостя

VBoxManage createhd --filename "ubuntu_srv001.vdi" --size 7000 --variant fixed --remember

Установим созданный файл ubuntu_srv001.vdi первым виртуальным жестким диском SATA

VBoxManage modifyvm "ubuntu_srv001" --sata on --sataportcount 30 --sataport1 "ubuntu_srv001.vdi"

Зарегистрируем контроллер IDE для DVD

VBoxManage storagectl "ubuntu_srv001" --name IDE0 --add ide

Зарегистрируем ISO файл с устанавливаемой ОС

VBoxManage openmedium dvd /export/distrib/OS/Ubuntu/ubuntu-10.10-server-i386.iso

Подключим этот ISO к виртуальной машине

VBoxManage storageattach "ubuntu_srv001" --storagectl "IDE0" --port 1 --device 0 --type dvddrive --medium /export/distrib/OS/Ubuntu/ubuntu-10.10-server-i386.iso

Включаем доступ к экрану виртуальной машины по RDP (стандартный порт 3389 поменяем, если виртуальных машин несколько, надо для каждой свой порт)

VBoxManage modifyvm "ubuntu_srv001" --vrdp on --vrdpport 3390

Пришло премя стартовать установку гостевой ОС

VBoxHeadless -startvm "ubuntu_srv001"

срочно включаем терминальную RDP сессию

В windows mstsc /v:host:port в linux rdesktop host:port

Все работаем …....................

установили систему с образа, делаем загрузку гостя с жесткого диска

VBoxManage modifyvm "ubuntu_srv001" --boot1 disk

диск с VboxGuestAdditions лежит здесь /usr/share/virtualbox/VBoxGuestAdditions.iso. Нужен он при установке графической среды.

 

Клонирование Виртуальных серверов VirtualBox .

 

У нас есть виртуальная машина ubuntu_srv001 с виртуальным диском ubuntu_srv001.vdi

Клонируем диск с системой.

VBoxManage clonehd ubuntu_srv001.vdi ubuntu_srv002.vdi

Регистрируем новую машину с аналогичными параметрами

VBoxManage createvm --name "ubuntu_srv002" -register
VBoxManage modifyvm "ubuntu_srv002" --memory 256 --acpi on --boot1 disk --nic1 bridged
VBoxManage modifyvm "ubuntu_srv002" --ostype ubuntu
VBoxManage modifyvm "ubuntu_srv002" --sata on --sataportcount 30 --sataport1 "ubuntu_srv002.vdi"

 

( VBoxManage storagectl ubuntu_srv002 --name SATA —remove если ошибся виртуальный диск всегда можно отцепить.)

 

VBoxManage modifyvm "ubuntu_srv002" --vrdp on --vrdpport 3391 (порт у каждой машины свой)

VBoxHeadless -startvm ubuntu_srv002 --vrdp=on > /dev/null 2>&1 &

 

зайдем на клона (оригинал пока выключен) mstsc /v:host:3391

/nano /etc/network/interfaces

меняем параметры tcpip у машин не должны совпадать ip

командой hostname newname меняем имя сервера, имена не должны повторятся

/etc/init.d/networking restart перезапустит сеть

Все . Можно использовать два виртуальных сервера.

Посмотреть список запущенных виртуальных машин VBoxManage list runningvms

 

Виртуальные машины в качестве службы

 

Для корректного вызова завершения работы виртуальной машины с консоли хоста я сначала пользовался VBoxManage controlvm ubuntu_srv001 poweroff лишь спустя время я вычитал, что способ аналогичен обрыву питания на реальном компьютере.

 

Другой способ, более надежный требует установки пакета управления питанием на виртуальную машину apt-get install acpid.

Старт службы acpid start.

 

Если мы автоматически стартуем эту службу на виртуальной машине, то имеем возможность корректно завершить ее работу нажав виртуальную кнопку выключения c машины хоста.

VBoxManage controlvm ubuntu_srv001 acpipowerbutton

 

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

Я делаю через webmin, потому, что очень быстро и просто.(Webmin не панацея для всего,не все можно быстро настроить через webmin)

Заходим на хост сервер через https://хост:10000/ рутом.

Раздел System → Bootup and Shutdown → Create a new bootup and shutdown action.

Придумаем имя службы

Bootup commands (в качестве запуска)VBoxHeadless -startvm ubuntu_srv001 --vrdp=on > /dev/null 2>&1 &

Shutdown commands (остановка) VBoxManage controlvm ubuntu_srv001 acpipowerbutton

в конце кнопка Create

Все проверяйте /etc/init.d/имя_службы start запуск виртуальной машины /etc/init.d/имя_службы stop остановка.

 

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

(c)