Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: HowTo. VirtualBox. Создание и управление виртуальными машинами из консоли.  (Прочитано 26450 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн yarvobler

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Имеем сервер, на котором нет графической среды, есть задача развернуть на нем несколько виртуальных серверов

устанавливаем 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.
Старт службы /etc/init.d/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 остановка.

При таком раскладе перед перезагрузкой хоста не обязательно выключать гостевые сервера. Они корректно завершат работу автоматически.
 VBoxManage --help вам в помощь.
« Последнее редактирование: 29 Ноября 2010, 15:00:31 от yarvobler »

Оффлайн madhast

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Здравствуйте. Решил воспользоваться вашим how-to, но возникла проблема на этапе
Цитировать
Установим созданный файл ubuntu_srv001.vdi первым виртуальным жестким диском SATA
 VBoxManage modifyvm "ubuntu_srv001" --sata  on --sataportcount 30 --sataport1 "ubuntu_srv001.vdi"
Насколько я понял это из-за разницы в версиях virtualbox, я поставил 4.0.0. Там это как-то подругому делается. Не подскажете как?

Оффлайн madhast

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля

Оффлайн stanzdor

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Делаю строго по мануалу, на этапе:
"Пришло премя стартовать установку гостевой ОС
VBoxHeadless -startvm "ubuntu_srv001"
Выдает ошибку:
Oracle VM VirtualBox Headless Interface 3.2.10
(C) 2008-2010 Oracle Corporation
All rights reserved.

Listening on port 3390.
Error: failed to start machine. Error message: Failed to open/create the internal network 'HostInterfaceNetworking-' (VERR_INVALID_PARAMETER).
Unknown error creating VM (VERR_INVALID_PARAMETER)

Оффлайн ewgenm

  • Новичок
  • *
  • Сообщений: 1
  • Красота спасет мир
    • Просмотр профиля
    • Недвижимость в Миассе, Самые лучшие предложения
аналогично - когда делаю все по мануалу то
Oracle VM VirtualBox Headless Interface 3.2.10
(C) 2008-2010 Oracle Corporation
All rights reserved.

Listening on port 3390.
Error: failed to start machine. Error message: Failed to open/create the internal network 'HostInterfaceNetworking-' (VERR_INVALID_PARAMETER).
Unknown error creating VM (VERR_INVALID_PARAMETER)

попробовал снести и поставить из репозитория убунты на этапе подключения rdp
Цитировать
Включаем доступ к экрану виртуальной машины по RDP (стандартный порт 3389 поменяем, если виртуальных машин несколько, надо для каждой свой порт)
VBoxManage modifyvm "ubuntu_srv001" --vrdp on --vrdpport 3390
появляется следующее сообщение
error: unknown option: --vrdp

Оффлайн madhast

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Они кажется синтаксис некоторых команд поменяли в новой версии. На офф сайте глянь :)

Оффлайн ilil

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Раздел System → Bootup and Shutdown → Create a new bootup and shutdown action.
в webmin 1.550 есть только пункт Create a new upstart service , а там не понятно как создавать сервис для virtualbox
я вместо этого сделал отдельную кнопки выключения( для Kubuntu)
выключение

#!/bin/bash
/home/имя пользователя/myscript/reboot/killprocess.sh #завершение виртуалки и других процессов
sleep 40
/usr/bin/qdbus org.kde.ksmserver /KSMServer logout 0 2 0 #выключение с сохранением KDE сессии

перезагрузка
#!/bin/bash
/home/имя пользователя/myscript/reboot/killprocess.sh #завершение виртуалки и других процессов
sleep 40
/usr/bin/qdbus org.kde.ksmserver /KSMServer logout 0 1 0 #перезагрузка  с сохранением KDE сессии
скрипт завершение виртуалки и других процессов "killprocess.sh"
#!/bin/bash
VBoxManage controlvm "win_xp_vb" acpipowerbutton #завершение виртуалки
killall ktorrent #завершение процессов которые менеджер сессий  не всегда корректно сохраняет
killall goldendict #завершение процессов которые менеджер сессий  не всегда корректно сохраняет
« Последнее редактирование: 28 Мая 2011, 12:23:22 от ilil »

 

Страница сгенерирована за 0.064 секунд. Запросов: 25.