Како да креирате VirtualBox VM од терминалот Linux


Повеќето даватели на облак ќе изнајмуваат виртуелни сервери наместо вистински хардвер. Ако сакате да го правите истото на вашите сопствени сервери, или да извршувате различни оперативни системи или да управувате со повеќе средини, можете да го направите тоа целосно од вашиот терминал.

Ако планирате само да користите виртуелни машини, можеби ќе ве интересира хипервизор. Хипервизорот го заменува вашиот оперативен систем-домаќин и е прилагоден изграден за управување со повеќе виртуелни машини. Нема да можете да стартувате апликации на оперативниот систем домаќин, но можете лесно да го виртуелизирате Ubuntu Server или нешто слично и да ги стартувате апликациите на врвот на хипервизорот.

Инсталирање на VirtualBox и VBox Extension Pack

VirtualBox е бесплатен софтвер за виртуелизација базиран на GUI кој работи како апликација на вашиот оперативен систем домаќин (тип 2 хипервизор). Можеби сте го користеле претходно на персонален компјутер за да поставите VM, но VirtualBox всушност има интерфејс со целосна командна линија и е целосно употреблив само од терминал, што го прави совршен за оваа употреба. Друго решение би било QEMU, но VirtualBox е испробан и тестиран и е непобедлив за тоа што е бесплатен и со отворен код.

Сепак, VirtualBox CLI е секако малку незгоден, па ако само се плеткате со домашниот сервер и имате малку RAM на резерва, наместо тоа, би можеле да инсталирате лесна работна околина на вашиот сервер и да го поставите VirtualBox на вообичаен начин. Сè уште можете да ги стартувате VM-ите во режим без глава за да продолжите да работат откако ќе се одјавите од DE.

Ако планирате да се придржувате до CLI, инсталацијата е прилично едноставна, бидејќи е достапна директно од apt:

sudo apt-get install virtualbox

Ќе сакате да ја забележите верзијата што е инсталирана сепак ( VBoxManage -v ), бидејќи ќе треба да инсталирате уште неколку работи. Бидејќи поставуваме во режим без глава, ќе ни треба начин да се поврземе со машината пред да може да се конфигурира SSH/RDP.

Одете на страницата за преземање на VirtualBox и пронајдете ја врската за пакетот наставки за верзијата на којашто работите. Преземете го со wget:

wget https://download.virtualbox.org/virtualbox/5.2.42/Oracle_VM_VirtualBox_Extension_Pack-5.2.42.vbox-extpack

И инсталирај го:

sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.42.extpack

Поради некоја причина, се чинеше дека VRDE не функционираше за нас со инсталираниот вграден пакет за продолжување VNC. Отстранувањето на овој пакет го реши проблемот:

sudo VBoxManage extpack uninstall VNC

Поставување на VM

За почеток, ќе создадеме нов VM со име „Ubuntu“. Можете да прегледате список на поддржани типови на оперативни системи со остипови на список на VBoxManage.

sudo VBoxManage createvm --name "Ubuntu" --ostype Ubuntu_64 --register

Дајте му на машината RAM меморија и креирајте нов хард диск. Ќе одиме со 4 GB RAM и 32 GB простор на HDD, но и двете може да се прошират подоцна. Забележете дека хард дискот е виртуелен диск и не е претходно доделен.

sudo VBoxManage modifyvm "Ubuntu" --memory 4096
sudo VBoxManage createhd --filename "Ubuntu.vdi" --size 32000

Поставете го бројот на vCPU. Ова се мери во нишки, а не во целосни јадра на процесорот.

sudo VBoxManage modifyvm "Ubuntu" --cpus 2

Следно е уште некоја конфигурација за хард дискот. Обично тоа се случува автоматски кога креирате машини од GUI, но ќе мора рачно да креирате SAS контролер и да го прикачите на VM за правилно да работи хард дискот.

sudo VBoxManage storagectl "Ubuntu" --name "SAS Controller" --add sas --controller LSILogicSAS
sudo VBoxManage storageattach "Ubuntu" --storagectl "SAS Controller" --port 0 --device 0 --type hdd --medium "Ubuntu.vdi"
sudo VBoxManage storagectl "Ubuntu" --name "SAS Controller" --hostiocache on

Ќе го сториме истото за дискот што ќе го држи ISO за да го инсталира оперативниот систем. Ова претпоставува дека вашиот ISO се наоѓа на /home/user/Ubuntu.iso, па променете го соодветно.

sudo VBoxManage storagectl "Ubuntu" --name "IDE Controller" --add ide --controller PIIX4
sudo VBoxManage storageattach "Ubuntu" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium "/home/user/Ubuntu.iso"

Потоа, превртете неколку прекинувачи поврзани со перформансите за да спречите забавување од прекумерна употреба на RAM меморија:

sudo VBoxManage modifyvm "Ubuntu" --nestedpaging on
sudo VBoxManage modifyvm "Ubuntu" --largepages on

Следно, ќе ја создадеме мрежата што ќе ја користи оваа VM. Има многу опции за овој чекор:

  • NAT, наједноставниот, кој едноставно му овозможува на VM да комуницира со надворешниот свет користејќи превод на мрежна адреса (NAT). Ова не дозволува VM-ите да разговараат меѓу себе и не дозволува контакт од домаќин со гостин освен ако не се препрати портата.
  • NAT мрежата, е слична на NAT, освен што мрежата е споделена меѓу VM-ите и тие можат да разговараат меѓу себе. Мрежата NAT делува како виртуелна подмрежа.
  • Bridged, што ја премостува физичката врска директно со VM. VM има вистинска IP адреса на вашата мрежа. Ова може да работи дури и со само една Wi-Fi/Ethernet конекција, но ако имате мрежна картичка со повеќе Ethernet порти, можете да доделите цел интерфејс директно на VM.
  • Виртуелна мрежа, која поврзува повеќе примероци во изолирана виртуелизирана мрежа. Ова е корисно за моделирање реални мрежи, но не е погодно за повеќето случаи на употреба.
  • Адаптер само за домаќини, е сличен на виртуелната мрежа, но дозволува разговор со домаќинот (не со интернет).

За овој пример, ќе одиме со NAT мрежата, бидејќи е едноставна за поставување и најразновидна од купот, обезбедувајќи рамнотежа на поврзување и изолација.

Создадете нова мрежа на подмрежата 10.0.0.0/24, стартувајте ја:

sudo VBoxManage natnetwork add --netname natnet1 --network "10.0.0.0/24" --enable
sudo VBoxManage natnetwork start --netname natnet1

И прикачете го на VM:

sudo VBoxManage modifyvm "Ubuntu" --nic1 natnetwork --nat-network1 natnet1

Следно, ќе треба да конфигурираме како пристапуваме до овој пример. Бидејќи го инсталираме ова на сервер без глава (без видео излез), нема да можеме да го завршиме процесот на инсталација и да инсталираме клиент RDP на гостинскиот оперативен систем. За да го решиме ова, ќе го користиме серверот VRDE на VirtualBox, главната причина зошто порано го инсталиравме пакетот за наставка на VirtualBox. Ова го доловува излезот од виртуелниот приказ и го прави достапен преку RDP.

Вклучете го ова и поставете порта за него. Ќе сакате да бидете сигурни дека оперативниот систем домаќин ја има оваа порта отворена.

sudo VBoxManage modifyvm "Ubuntu" --vrde on
sudo VBoxManage modifyvm "Ubuntu" --vrdeport 5587

Конечно, можеме да го стартуваме VM во режим без глава и да започнеме со инсталација на ОС.

sudo VBoxManage startvm "Ubuntu" --type headless

Имајте предвид дека режимот без глава значи дека работи на сервер без глава, а не дека гостинскиот оперативен систем нема видео излез.

Ќе бидат потребни секунда или две за да започне, и ќе можете да вклучите RDP клиент и да се поврзете со него користејќи ја портата што сте ја навеле. Може да побара корисничко име и лозинка; VRDE стандардно е „администратор“ без лозинка.

Препраќање порта по поставувањето

Откако ќе заврши инсталацијата на оперативниот систем, ќе мора да извршите препраќање на портата за да го одржите пристапот откако ќе се исклучи VRDE, во суштина како да се отвораат правилата за заштитен ѕид. Ако поставувате средина без глава како Linux, едноставно ќе мора да пренесете SSH напред. Следната команда ќе додаде правило за пренасочување на портата на вашата NAT мрежа за да ја препрати портата 2200 на оперативниот систем домаќин на стандардната SSH порта на гостинот. Забележете дека оваа порта ќе треба да биде отворена во заштитниот ѕид на вашиот домаќин за да функционира.

sudo VBoxManage natnetwork modify --netname natnet1 --port-forward-4 "ssh:tcp:[]:2200:[10.0.0.2]:22"

Ако поставувате RDP, ќе мора да го конфигурирате серверот RDP во гостинскиот оперативен систем и проверете дали портата RDP е отворена во заштитниот ѕид на гостинот. После тоа, можете да пренесете напред на скоро ист начин:

sudo VBoxManage natnetwork modify --netname natnet1 --port-forward-4 "rdp:tcp:[]:5589:[10.11.0.2]:3389"

Ако треба да ги избришете правилата за препраќање порти, ќе мора да ги избришете по име со оваа прилично неумешна команда (првата низа пред дебелото црево):

sudo VBoxManage natnetwork modify --netname natnet1 --port-forward-4 delete rdp

Откако ќе потврдите дека можете да се поврзете преку SSH/RDP директно со гостинскиот оперативен систем, можете да го исклучите VRDE:

sudo VBoxManage modifyvm "Ubuntu" --vrde off

Ако планирате да го користите овој VM преку RDP подолги временски периоди, можеби ќе сакате да го инсталирате пакетот VirtualBox Guest Additions за вашиот гостин оперативен систем.

Ако одлучите да управувате со VirtualBox користејќи го GUI по поставувањето на оваа VM од CLI, имајте на ум дека оваа VM е создадена како root, така што ќе треба да го стартувате GUI на VirtualBox како root за да го видите овој VM во списокот. Во спротивно, треба да работи нормално.

Исто така, ако сакате машината да работи додека вашата работна околина е исклучена, ќе мора да кликнете со десното копче за да ја стартувате машината во режим без глава.