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)