Ubuntu JeOS (vyslovujeme "džús") je efektívny variant operačného systému Ubuntu Server, nastavený špeciálne pre prácu vo virtuálnom počítači. Tento systém sa už nedá stiahnuť ako samostatný ISO obraz disku CD-ROM, ale je ho možné nainštalovať týmito spôsobmi:
JeOS je špecializovaná inštalácia systému Ubuntu Server Edition s vyladeným jadrom, ktoré obsahuje základné prvky potrebné na beh vo virtuálnom prostredí.
Ubuntu JeOS bol vyladený tak, aby využíval kľúčové technológie na zvýšenie výkonu v posledných produktoch od VMware. Kombinácia zníženej veľkosti a optimalizovaného výkonu zaisťuje pre Ubuntu JeOS Edition vysokú efektívnosť využitia serverových zdrojov pri rozsiahlom nasadení virtualizácie.
Systém bez nepotrebných ovládačov s minimálnym počtom balíkov si môžu ostatné spoločnosti prispôsobiť presne podľa svojich potrieb. Bezpečnostné a iné aktualizácie sú obmedzené na minimum, pretože sa aktualizuje iba najnevyhnutnejšie minimum potrebné pre chod prostredia. Používatelia pracujúci v prostredí JeOS zaznamenajú menej aktualizácií ako by zaznamenali pri štandardnej inštalácii servera.
Vďaka nástroju vmbuilder už nie je potrebné sťahovať ISO obraz disku JeOS. Nástroj vmbuilder dokáže pomocou rôznych balíkov pripraviť za minútu virtuálny počítač presne podľa našich požiadaviek. Vmbuilder je skript, ktorý automatizuje proces vytvárania virtuálnych počítačov založených na Linuxe. V súčasnosti podporuje KVM a Xen.
Pomocou prepínačov príkazového riadka môžeme pridať
ďalšie balíky, odstrániť balíky, zvoliť verziu Ubuntu a zrkadlo z
ktorého bude sťahovať, atď. Na novom hardvéri s dostatkom pamäte RAM,
priečinkom tmpdir v /dev/shm alebo použitím súborového
systému tmpfs, vytvorením lokálneho zrkadla, môžete naštartovať
virtuálny počítač za menej ako minútu.
Prvý krát sa shell skript ubuntu-vm-builder objavil v Ubuntu 8.04LTS. Bol vytvorený za účelom pomoci vývojárom, ktorý potrebovali testovať svoj kód bez toho, aby museli zakaždým začínať od nuly. Niekoľko administrátorov Ubuntu začalo tento skript používať a pridali do neho rôzne vylepšenia a prispôsobili ho na konkrétne prípady, čo priviedlo Sorena Hansena (to nie je golfový hráč ale autor skriptu a špecialista na virtualizáciu Ubuntu) k tomu, aby do vydania Interpid skript od znova prepísal v jazyku Python, pričom si stanovil nové ciele:
Základný princíp a príkazy však zostali rovnaké.
Predpokladáme, že už máme lokálne nainštalované a nakonfigurované libvirt a KVM na počítači, ktorý používame. Viac informácii o tom ako to urobiť sa nachádza:
Predpokladáme aj znalosť niektorého z textových editorov, ako napríklad nano alebo vi. Ak o textových editoroch ešte nič neviete, základný prehľad získate na stránke PowerUsersTextEditors. Tento návod je vytvorený pre KVM, ale základný princíp je rovnaký aj pre ostatné virtualizačné technológie.
Názov balíka, ktorý je potrebné nainštalovať, je python-vm-builder. V príkazovom riadku zadáme:
sudo apt-get install python-vm-builder
|
Ak používate verziu Hardy, môžete si nainštalovať staršiu verziu balíka s názvom ubuntu-vm-builder, v ktorom je len veľmi málo rozdielov v syntaxe. |
Definovanie virtuálneho počítača pomocou nástroja vmbuilder je veľmi jednoduché, ale je tu niekoľko vecí, ktoré je potrebné zvážiť:
Príkaz vmbuilder má 2 hlavné parametre: virtualizačnú technológiu (hypervisor) a cieľovú distribúciu. Ďalších niekoľko voliteľných parametrov môžete nájsť po zadaní príkazu:
vmbuilder --helpV tomto príklade použijeme KVM a Ubuntu 10.10 (Maverick Meerkat) a budeme príkaz pre vytvorenie virtuálneho počítača postupne upresňovať, pričom budeme spúšťať príkaz vmbuilder s takýmito parametrami:
sudo vmbuilder kvm ubuntu --suite maverick --flavour virtual --arch i386 -o --libvirt qemu:///system
Prepínač --suite definuje vydanie Ubuntu, --flavour hovorí, že použijeme virtuálne jadro (to sa používa pri vytváraní obrazu JeOS), --arch hovorí, že chceme použiť 32 bitový počítač, -o povie príkazu vmbuilder aby nahradil predchádzajúcu verziu virtuálneho počítača a --libvirt informuje lokálne virtualizačné rozhranie, aby pridalo virtuálny počítač do zoznamu počítačov.
Poznámky:
Keďže virtuálne služby môžu byť nasadené do najrôznejších sietí, o ktorých je veľmi ťažké zistiť ako budú vyzerať, je dobré použiť rovnaké riešenie, ako robia výrobcovia hardvéru – priradiť virtuálnemu počítaču počiatočnú fixnú IP adresu z rozsahu pre súkromné siete, s ktorou oboznámite používateľov pomocou dokumentácie. Rozsah, z ktorého by ste si mali adresu zvoliť je 192.168.0.0/255.
Ak to chceme urobiť, použijeme nasledujúce parametre:
My budeme predpokladať, že predvolené hodnoty sú vyhovujúce, preto použijeme nasledujúci príkaz:
sudo vmbuilder kvm ubuntu --suite maverick --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100
Pretože chceme, aby k službám mohli pristupovať vzdialené stanice, je potrebné nastaviť libvirt tak, aby služba použila sieťové premostenie. Aby sme to dosiahli, použijeme mechanizmus šablón nástroja vmbuilder, pomocou ktorého zmeníme jednu z predvolených šablón.
V našom pracovnom priečinku si vytvoríme hierarchiu šablóny a nakopírujeme do nej predvolenú šablónu:
mkdir -p VMBuilder/plugins/libvirt/templates cp /etc/vmbuilder/libvirt/* VMBuilder/plugins/libvirt/templates/
Teraz môžeme otvoriť súbor VMBuilder/plugins/libvirt/templates/libvirtxml.tmpl
a zmeniť:
<interface type='network'>
<source network='default'/>
</interface>
Na:
<interface type='bridge'>
<source bridge='br0'/>
</interface>
Pri rozdeľovaní disku na virtuálnom počítači musíme zobrať do
úvahy, na aký účel ho plánujeme použiť, pretože väčšina služieb chce mať
samostatné úložisko dát. Na tento účel je vhodné vytvoriť samostatnú
oddiel pre priečinok /var.
Ak to chceme urobiť, vmbuilder nám poskytne prepínač --part:
--part CESTA
Umožňuje špecifikovať tabuľku oblastí do tzv. partfile súboru. Každý riadok v partfile súbore by mal určovať
(ako prvý koreňový priečinok root):
miesto_pripojenia veľkosť
pričom veľkosť sa udáva v megabajtoch. Je možné definovať až 4 virtuálne disky. Ďalší disk sa oddeľuje
čiarou zo znakov ’---’. Napríklad :
root 1000
/opt 1000
swap 256
---
/var 2000
/log 1500
V našom prípade definujeme textový súbor vmbuilder.partition,
ktorý bude obsahovať nasledujúce nastavenia:
root 8000 swap 4000 --- /var 20000
|
Všimnite si, že pri použití obrazov virtuálnych diskov je veľkosť, ktorú sme im pridelili, maximálnou veľkosťou týchto jednotiek. |
Náš príkaz bude teraz vyzerať takto:
sudo vmbuilder kvm ubuntu --suite maverick --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition
|
Pomocou znaku "\" v príkaze je možné dlhý príkaz zalomiť do ďalšieho riadka. |
Pri poskytovaní virtuálnej služby bude potrebné zadať predvoleného používateľa a heslo, ktoré odporúčame tiež uviesť vo vašej dokumentácii. Neskôr si v tomto návode povieme, ako budeme poskytovať zabezpečenie pomocou skriptu, ktorý sa bude spúšťať pri prvom prihlásení sa používateľa do virtuálneho počítača, ktorý si okrem iného od neho vyžiada zmenu hesla. V našom príklade použijeme ako prihlasovacie meno 'pouzivatel', a heslo 'tajne'.
Urobíme to pomocou nasledujúcich nepovinných parametrov:
Náš výsledný príkaz bude vyzerať takto:
sudo vmbuilder kvm ubuntu --suite maverick --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition \ --user pouzivatel --name pozivatel --pass tajne
V tomto príklade nainštalujeme balík (Limesurvey), ktorý pristupuje do databázy MySQL a má webové rozhranie. Budeme preto potrebovať náš OS vybaviť systémami:
Robí sa to pomocou viacnásobného zadania parametra --addpkg príkazu vmbuilder:
--addpkg PKG Nainštaluje PKG do hosťovského počítača (môže byť použitý viackrát)
Vzhľadom na to, ako vmbuilder funguje, balíky, ktoré sa potrebujú niečo opýtať používateľa počas inštalačnej fázy, nie sú podporované a mali by sa inštalovať, až keď začne fungovať interaktivita. Toto platí aj pre Limesurvey, ktorý budeme inštalovať až po prihlásení používateľa.
Ostatné balíky, ktoré sa pýtajú jednoduché otázky cez debconf (príkladom je mysql-server pýtajúci nastavenie hesla), je možné nainštalovať okamžite, ale je potrebné spustiť rekonfiguráciu po prvom prihlásení používateľa.
Ak niektoré balíky, ktoré potrebujeme nainštalovať, nie sú v hlavnom úložisku main, bude potrebné povoliť ďalšie úložiská pomocou --comp a --ppa:
--components SÚČ1,SÚČ2,...,SÚČN
zoznam čiarkami oddelených súčastí distribúcie, ktoré sa majú zahrnúť (napr.: main,universe). Predvolená hodnota
je "main"
--ppa=PPA Pridá osobný archív balíkov PPA do zoznamu zdrojov v súbore sources.list pre virtuálny počítač.
Limesurvey nie je momentálne súčasťou archívu,
preto použijeme jeho adresu PPA (osobného archívu balíkov), tak že ju
pridáme do súboru /etc/apt/source.list virtuálneho
počítača. Do príkazu teda pridáme nasledujúce voľby:
--addpkg apache2 --addpkg apache2-mpm-prefork --addpkg apache2-utils --addpkg apache2.2-common \ --addpkg dbconfig-common --addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \ --addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql --addpkg wwwconfig-common \ --addpkg mysql-server --ppa nijaba
Ďalším praktickým nástrojom, ktorý chceme poskytovať, je OpenSSH, pretože umožní administrátorom vzdialený prístup k virtuálnemu počítaču. Poskytnutie predinštalovaného OpenSSH servera je však veľký bezpečnostný risk, pretože všetky servery vo virtuálnych počítačoch budú používať rovnaký tajný kľúč. Takže ak sa hackerovi podarí prelomiť ochranu, ľahko získa prístup ku všetkým virtuálnym počítačom. Preto tak, ako pri používateľskom hesle, použijeme skript, ktorý nainštaluje OpenSSH pri prvom prihlásení používateľa, takže vygenerovaný kľúč bude odlišný v každom virtuálnom počítači. Na tento účel použijeme --firstboot skript, pretože nevyžaduje žiadnu interakciu z používateľom.
Keď vmbuilder vytvára zostavu vášho systému, musí stiahnuť každý balík cez sieť z jedného z oficiálnych úložísk, čo môže v závislosti od rýchlosti internetového spojenia a záťaže zrkadla významne ovplyvniť rýchlosť vytvárania systému. Ak chceme tento čas skrátiť, je vhodné buď vytvoriť lokálne úložisko (ktoré môžeme vytvoriť pomocou apt-mirror) alebo použiť medzičlánok (proxy) s vyrovnávacou pamäťou, ako napríklad apt-proxy. Druhá možnosť je jednoduchšia na implementáciu a vyžaduje menej diskového priestoru, a preto ju použijeme aj v tomto návode. Vyrovnávaciu pamäť nainštalujeme zadaním príkazu:
sudo apt-get install apt-proxy
Po dokončení je prázdny medzičlánok proxy pripravený na adrese http://mirroraddress:9999 a úložisko systému Ubuntu sa bude vytvárať v priečinku /ubuntu. Aby ho príkaz vmbuilder použil, použijeme voľbu --mirror:
--mirror=URL Použije zrkadlo úložiska (mirror) Ubuntu na zadanej URL adrese namiesto predvolených
úložísk na adresách http://archive.ubuntu.com/ubuntu s oficiálnymi
archívmi a http://ports.ubuntu.com/ubuntu-ports
s ostatnými
Pridáme preto do príkazu nasledujúce:
--mirror http://adresa-zrkadla:9999/ubuntu
|
Adresa
zrkadla, ktorú zadáme, sa použije aj v súbore |
Ak sa nachádzame v rozsiahlejšom prostredí, môžeme sa zamerať na nastavenie lokálneho zrkadla úložísk Ubuntu. Balík apt-mirror nám poskytne skripty, ktoré budú za nás obsluhovať zrkadlenie. Mali by sme si vyhradiť asi 20 gigabajtov voľného diskového priestoru pre podporované vydania a architektúry.
V predvolenom stave apt-mirror
použije
konfiguračný súbor /etc/apt/mirror.list. Keď ho nastavíme,
bude replikovať iba architektúru vhodnú pre náš počítač. Ak chceme v
zrkadle podporovať aj ostatné architektúry, stačí skopírovať riadky v
súbore začínajúce “deb” a nahradiť deb kľúčovým slovom /deb-{arch},
pričom arch môže byť i386, amd64, atď... Napríklad na počítači s
architektúrou amd64 môžeme poskytovať archívy pre architektúru i386
doplnením riadkov:
deb http://archive.ubuntu.com/ubuntu maverick main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu maverick main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu maverick-updates main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu maverick-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu maverick-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu maverick-security main restricted universe multiverse /deb-i386 http://security.ubuntu.com/ubuntu maverick-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu maverick main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer /deb-i386 http://archive.ubuntu.com/ubuntu maverick main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
Všimnite si, že zdrojové balíky nie sú zrkadlené, pretože sa v porovnaní s binárnymi súbormi používajú zriedkavo a zaberajú oveľa viac miesta. Ak budeme chcieť, môžeme ich jednoducho pridať do zoznamu.
Keď zrkadlo skončí replikáciu (čo môže trvať dlho), je
potrebné nastaviť webový server Apache, aby zrkadlené súbory v priečinku
/var/spool/apt-mirror
(ak ste nezmenili predvolené
umiestnenie) boli publikované cez webový server Apache. Viac informácií o
webovom serveri Apache sa nachádza v časti HTTPD – webový
server
Apache2.
Všetci vieme, že zápis do operačnej pamäte RAM je OMNOHO rýchlejší ako zápis na disk. Ak máte nejakú voľnú pamäť, v ktorej by ste mohli nechať vmbuilder vykonávať jeho operácie na tzv. RAMdisku, veľmi by to pomohlo. RAMdisk vytvoríme pomocou voľby --tmpfs:
--tmpfs OPTS Použije tmpfs ako pracovný priečinok, pričom určíme jeho
veľkosť alebo zadaním "-" použijeme predvolené tmpfs (suid,dev,size=1G).
Preto pridanie --tmpfs - je veľmi dobrý nápad, ak máte 1G voľnej operačnej pamäte.
Máme dve možnosti:
/opt
podľa odporúčaní
FHS guidelines.
V našom prípade použijeme Limesurvey ako príklad webovej aplikácie, kvôli ktorej poskytujeme virtuálny počítač. Ako sme už poznamenali, použijeme verziu, ktorá je dostupná v PPA (osobnom archíve balíkov).
Tak ako sme hovorili už skôr, pri prvom spustení virtuálneho
počítača je potrebné nainštalovať openssh-server,
aby bol generovaný kľúč jedinečný pre každý virtuálny počítač.
Urobíme to pomocou skriptu s názvom boot.sh takto:
# Tento skript sa spustí pri prvom spustení virtuálneho počítača # Bude spustený pod používateľom root. apt-get update apt-get install -qqy --force-yes openssh-server
A teraz pridáme voľbu --firstboot boot.sh do príkazu.
Systémy Mysql a Limesurvey vyžadujú trocha interakcie počas nastavovania, nastavíme ich pri prvom prihlásení používateľa pomocou skriptu s názvom login.sh. Tento skript použijeme aj na to, aby používateľ mohol zadať:
Skript login.sh preto zadefinujeme nasledovne:
# Tento skript sa spustí pri prvom prihlásení používateľa echo "Virtuálny počítač je teraz potrebné nastaviť." echo "Bude potrebné odpovedať na niekoľko otázok." echo "Začneme zmenou vášho používateľského hesla" passwd #poskytnutie možnosti zmeny klávesnice sudo dpkg-reconfigure console-setup #nastavenie hesla používateľa root databázového servera mysql sudo dpkg-reconfigure mysql-server-5.0 #inštalácia limesurvey sudo apt-get install -qqy --force-yes limesurvey echo "Virtuálny počítač je teraz nastavený. Zadajte do prehliadača" echo "adresu http://serverip/limesurvey/admin"
A potom pridáme do príkazu voľbu --firstlogin login.sh.
Ak chceme, aby virtuálny počítač sám seba aktualizoval, stačí nainštalovať unattended-upgrades. Preto pridáme nasledujúcu voľbu do príkazu:
--addpkg unattended-upgradesPretože sme pridali aplikáciu z PPA úložiska, proces aktualizácie nebude aktualizovať len systém, ale aj danú aplikáciu, a to vždy, keď sa objaví nová verzia v PPA úložisku.
Aby virtuálne počítače dokázali spracovať signál pre vypnutie a reštart, je vhodné nainštalovať aj balík acpid. Urobíme to pridaním nasledujúcej voľby do príkazu:
--addpkg acpidTu je výsledný príkaz so všetkými voľbami, o ktorých sme hovorili:
sudo vmbuilder kvm ubuntu --suite maverick --flavour virtual --arch i386 -o \ --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition --user pouzivatel \ --name pouzivatel --pass tajne --addpkg apache2 --addpkg apache2-mpm-prefork \ --addpkg apache2-utils --addpkg apache2.2-common --addpkg dbconfig-common \ --addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \ --addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql --addpkg wwwconfig-common \ --addpkg mysql-server --addpkg unattended-upgrades --addpkg acpid --ppa nijaba \ --mirror http://adresa-zrkadla:9999/ubuntu --tmpfs – --firstboot boot.sh \ --firstlogin login.sh
Ak sa chcete dozvedieť viac, máte otázky alebo pripomienky, kontaktujte náš Ubuntu Server Tím cez:
Inormácie sa nachádzajú aj na stránke JeOSVMBuilder Ubuntu Wiki.