Az JeOS az Ubuntu kiszolgáló operációs rendszer egy hatékony változata, amelyet kifejezetten virtuális eszközökhöz állítottak össze. Nem érhető el letölthető ISO-ként, csak:
-
A kiszolgáló változat telepítésekor (az első képernyőn az F4 megnyomása után kiválaszthatja a „Minimális telepítés” lehetőséget, ez azonos a JeOS csomagkészletével).
-
Felépíthető az Ubuntu vmbuilder eszközével, amelyet itt ismertetünk.
A JeOS az Ubuntu kiszolgáló változatának specializált telepítése, amely a virtualizált környezetben való futáshoz minimálisan szükséges elemeket tartalmazó kernelt használ.
Az Ubuntu JeOS a VMware legújabb virtualizációs termékeinek kulcsfontosságú teljesítménynövelő technikáinak kihasználására készült. A csökkentett méret és az optimalizált teljesítmény kombinációja biztosítja, hogy az Ubuntu JeOS változata a kiszolgáló-erőforrások különösen hatékony felhasználását nyújtsa nagy virtuális telepítéseken.
A szükségtelen meghajtóprogramok nélkül, és csak a minimálisan szükséges csomagokkal, a független szoftvergyártók teljesen az igényeikre szabhatják támogató operációs rendszerüket. Nyugodtak lehetnek afelől, hogy a frissítések, érkezzenek biztonsági vagy szolgáltatásbővítési okból, az adott környezetben szükséges minimumra korlátozódnak. Cserébe a JeOS alapokra épített virtuális eszközöket telepítő felhasználóknak kevesebb frissítést kell kezelniük, emiatt a teljes kiszolgálóhoz képest csökken a rendszerek karbantartási igénye.
A vmbuilder szükségtelenné teszi a JeOS ISO letöltését. A vmbuilder letölti a szükséges csomagokat, és percek alatt felépíti az igényeinek megfelelő virtuális gépet. A vmbuilder egy parancsfájl, amely automatizálja a használatra kész linuxos virtuális gép elkészítésének folyamatát. A jelenleg támogatott hypervisorok a KVM és a Xen.
Parancssori kapcsolók segítségével további csomagokat vehet fel vagy meglévőeket távolíthat el, kiválaszthatja a használni kívánt Ubuntu verziót vagy tükröt stb. Sok memóriával rendelkező új gépen, a /dev/shm
alatti tmpdir vagy tmpfs, valamint helyi tükör használatával akár egy perc alatt is összeállíthat egy virtuális gépet.
Az ubuntu-vm-builder parancsfájl minden hírverés nélkül az Ubuntu 8.04 LTS-ben mutatkozott be először, mint a fejlesztőket segítő gányolás, amely megkönnyíti a kód tesztelését virtuális gépben a rendszeres újrakezdés nélkül. Ahogy egyes ubuntus rendszergazdák észrevették a jelenlétét, néhányan fejleszteni kezdték, és olyan sok helyzet kezelésére tették alkalmassá, hogy a fejlesztője Pythonban újraírta az Intrepidhez, néhány új fejlesztési céllal:
-
Más disztribúciók számára is használható legyen.
-
Bővítmények kezeljék a virtualizációs interakciókat, így más virtuális környezetek támogatása könnyen hozzáadható.
-
A parancssoros felület mellett egy könnyen karbantartható webes felület is rendelkezésre álljon.
Az általános elvek és parancsok azonban ugyanazok maradtak.
Feltételezzük, hogy a használt gépre helyileg telepítette és beállította a libvirt és KVM szoftvereket. Ezzel kapcsolatos részletekért lásd:
Feltételezzük még, hogy ismeri egy szöveges alapú szövegszerkesztő, például a nano vagy a vi használatát. Ha még nem használta ezeket, akkor nézze meg az ismertetésüket a PowerUsersTextEditors wiki oldalon. Ezt az ismertetőt KVM-alapokra készítettük, de az alapelv más virtualizációs technológiák esetén is ugyanez.
A virtuális gép megadása az Ubuntu vmbuilder segítségével nagyon egyszerű, de az alábbiakat figyelembe kell venni:
-
Ha a virtuális eszköz továbbadására készül, ne feltételezze, hogy a végfelhasználó tudni fogja, hogyan igazíthatja a lemezméretet az igényeihez, emiatt vagy készítsen nagy virtuális lemezt, vagy dokumentálja alaposan a hely megnövelésének módját. Jó megközelítés lehet az adatok külső tárolón történő elhelyezése is.
-
Mivel memóriát sokkal egyszerűbb foglalni a virtuális géphez, a memória méretét az eszköz működéséhez biztonságos minimumra kell állítani.
A vmbuilder parancsnak két fő paramétere van: a virtualizációs technológia (hypervisor) és a cél disztribúció. A további paraméterekből igen sok van és a következő parancs kiadásával kérhetők le:
vmbuilder --help
Mivel ez a példa a KVM-re és az Ubuntu 10.04 LTS (Lucid Lynx) kiadására épül, valamint ugyanez a virtuális gép többször is újjá lesz építve, a vmbuilder hívásához a következő paramétereket kell használni:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 -o --libvirt qemu:///system
A --suite kapcsoló megadja az Ubuntu kiadást, a --flavour megadja, hogy a virtuális kernelt kell használni (ezt kell JeOS lemezkép készítéséhez használni), a --arch megadja, hogy 32 bites gépet használ, a -o felülírja a virtuális gép korábbi változatát, a --libvirt hatására pedig a helyi virtualizációs környezet felveszi a virtuális gépet az elérhető gépek listájába.
Megjegyzés:
-
A vmbuildert az általa végrehajtott műveletek természetéből fakadóan rendszergazdai jogosultságokkal kell futtatni, emiatt szükséges a sudo.
-
Ha a virtuális gépnek 3 GB-nál több memóriát kell használnia, akkor készítsen 64 bites gépet (--arch amd64).
-
Az Ubuntu 8.10-ig a virtuális kernel csak 32 bitre készült el, így ha Hardy alatt szeretne 64 bites gépet készíteni, akkor a --flavour server kapcsolót kell megadnia.
Mivel a virtuális eszközt számos, nagyon különböző hálózatba lehet telepíteni, nehéz megállapítani a tényleges hálózat pontos típusát. A beállítás megkönnyítése érdekében hasznos lehet a hálózati hardverek szállítóinak megközelítését alkalmazni, vagyis az eszközhöz kiinduló, egy privát osztályú hálózatba tartozó rögzített IP-címet rendelni, amelyet majd a dokumentációban ismertet. Erre általában a 192.168.0.0/255 tartománybeli címek megfelelőek.
Ehhez a következő paramétereket használhatja:
-
--ip CÍM: IP-cím pontozott formátumban (alapértelmezésben dhcp, ha nincs megadva)
-
--mask ÉRTÉK: IP-maszk pontozott formátumban (alapértelmezésben: 255.255.255.0)
-
--net ÉRTÉK: IP-hálózat címe (alapértelmezésben: X.X.X.0)
-
--bcast ÉRTÉK: IP broadcast (alapértelmezett: X.X.X.255)
-
--gw CÍM: Átjáró címe (alapértelmezett: X.X.X.1)
-
--dns CÍM: Névkiszolgáló címe (alapértelmezett: X.X.X.1)
Egyelőre feltételezzük, hogy az alapértelmezett értékek megfelelőek, így az eredményül kapott hívás a következő lesz:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100
Mivel az eszközt valószínűleg távoli gépeknek is el kell majd érniük, a libvirtet úgy kell beállítani, hogy az eszköz a hálózatkezeléshez hidat használjon. Ehhez a vmbuilder sablon mechanizmusát kell használni, az alapértelmezett módosítására.
A munkakönyvtárban létre kell hozni a sablonhierarchiát, és át kell másolni az alapértelmezett sablont:
mkdir -p VMBuilder/plugins/libvirt/templates cp /etc/vmbuilder/libvirt/* VMBuilder/plugins/libvirt/templates/
Ezután szerkeszthető a VMBuilder/plugins/libvirt/templates/libvirtxml.tmpl
, és a következő rész módosítható:
<interface type='network'> <source network='default'/> </interface>
Erre:
<interface type='bridge'> <source bridge='br0'/> </interface>
A virtuális eszköz particionálásakor figyelembe kell venni, hogy az mire lesz használva. Mivel a legtöbb eszköz az adatokat külön tárolja, az önálló /var
használatának van értelme.
Ennek megadásához a vmbuilder a --part kapcsolót biztosítja:
--part ÚTVONAL Lehetővé teszi partíciós tábla megadását az ÚTVONALON lévő partíciós fájlban. A fájl minden sorának a következőket kell megadnia: (elsőként a root partíciót): csatolási-pont méret ahol a méret megabájtban értendő. Legfeljebb 4 virtuális lemeze lehet, az új lemez a „---” tartalmú sortól kezdődik. Például: root 1000 /opt 1000 swap 256 --- /var 2000 /log 1500
Ebben az esetben egy vmbuilder.partition
nevű fájlt kell létrehozni, a következő tartalommal:
root 8000 swap 4000 --- /var 20000
Ne feledje, hogy mivel virtuális lemezképekről van szó, az itt feltüntetett tényleges méretek a kötetek maximális méretei. |
A parancssor most így néz ki:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition
A parancsban használt „\” lehetővé teszi a hosszú parancsok következő sorba törését. |
A virtuális eszköz beállításához meg kell adni az alapértelmezett felhasználót és jelszót, amely elég általános ahhoz, hogy a saját dokumentációjába bekerülhessen. A dokumentumban később ismertetésre kerül egy olyan parancsfájl megadása, amely a felhasználó az eszközre történő első tényleges bejelentkezésekor lefut, és többek között a jelszó megváltoztatását kéri, így javítva a biztonságot. Ez a példa a „felhasználó” felhasználónevet és a „alapértelmezett” jelszót használja.
Ehhez a következő paraméterek szükségesek:
-
--user FELHASZNÁLÓNÉV: A felvenni kívánt felhasználó neve. Alapértelmezés: ubuntu.
-
--name TELJESNÉV: A felvenni kívánt felhasználó teljes neve. Alapértelmezés: Ubuntu.
-
--pass JELSZÓ: A felvenni kívánt felhasználó jelszava. Alapértelmezés: ubuntu.
A kapott parancssor:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 \ -o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition \ --userfelhasználó --name felhasználó --pass alapértelmezett
Ez a példa egy olyan csomag (Limesurvey) telepítését mutatja be, amely MySQL adatbázist használ, és webes felülettel rendelkezik. Emiatt a következők telepítése szükséges az operációs rendszerre:
-
Apache
-
PHP
-
MySQL
-
OpenSSH kiszolgáló
-
Limesurvey (csomagban elérhető példaprogram)
Ez a vmbuilder --addpkg kapcsolójának többszöri megadásával végezhető el:
--addpkg CSOMAG A CSOMAG telepítése a vendégre (többször is megadható)
A vmbuilder működési módja miatt nem támogatottak azok a csomagok, amelyeknek a telepítés utáni szakaszban kérdéseket kell feltenniük a felhasználónak. Ezeket a csomagokat akkor kell telepíteni, amikor lehetőség van a kérdések megválaszolására. Ez a Limesurvey esetén is így van, emiatt a felhasználó bejelentkezésekor kell telepíteni.
Az olyan csomagok telepíthetők, amelyek egyszerű debconf kérdéseket tesznek fel, mint például a jelszó beállítását kérő mysql-server, de a felhasználó első bejelentkezésekor újra kell konfigurálni.
Ha egyes telepítendő csomagok nem érhetők el a main tárolóból, akkor a további tárolókat a --comp és --ppa kapcsolókkal kell engedélyezni:
--components KOMP1,KOMP2,...,KOMPN Felvenni kívánt disztribúciókomponensek vesszőkkel elválasztott listája (például main,universe). Az alapértelmezett a „main” --ppa=PPA A PPA hozzáadása a virtuális gép sources.list fájljához.
A Limesurvey jelenleg nem része az archívumnak, így a PPA címét kell megadni, hogy felvételre kerüljön a virtuális gép /etc/apt/source.list
fájljába. A parancssor a következőkkel bővül:
--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
Egy másik kényelmes segédprogram, amelyet érdemes az eszközre telepíteni az OpenSSH, mivel lehetővé teszi a távoli rendszergazdai hozzáférést az eszközhöz. Azonban előre telepített OpenSSH-val nyilvánosan elérhetővé tenni bármilyen eszközt hatalmas biztonsági kockázat, mivel ezek a kiszolgálók ugyanazt a titkos kulcsot fogják használni, így pillanatok alatt feltörhetők. A felhasználói jelszóhoz hasonlóan ebben az esetben is egy parancsfájlt kell használni, amely a felhasználó első bejelentkezésekor telepíti az OpenSSH-t, így az egyes eszközökhöz előállított kulcsok egyediek lesznek. Ehhez egy --firstboot parancsfájlt kell megadni, mivel nem igényel felhasználói közreműködést.
Amikor a vmbuilder létrehozza a rendszert, minden csomagot le kell töltenie az egyik hivatalos tárolóból, ami az internetkapcsolat sebességétől, és a tükör terhelésétől függően jelentősen befolyásolhatja a rendszer összeállítási idejét. Ennek csökkentése érdekében ajánlott helyi tárolót létrehozni (az apt-mirror segítségével), vagy az apt-proxy-hoz hasonló gyorsítótárazó proxyt használni. Ez utóbbi lehetőséget sokkal egyszerűbb megvalósítani, és kevesebb lemezterületet is igényel, ezért ezt mutatjuk be. A telepítéséhez adja ki a következő parancsot:
sudo apt-get install apt-proxy
Ezután az üres proxy használatra kész a http://tükörcíme:9999 címen, az ubuntu tároló pedig a /ubuntu alatt található. A vmbuilder a --mirror kapcsoló hatására fogja használatba venni:
--mirror=URL Az URL címen található Ubuntu tükör használata az alapértelmezett helyett (http://archive.ubuntu.com/ubuntu hivatalos architektúrákhoz, és http://ports.ubuntu.com/ubuntu-ports egyébként)
A parancssor a következővel bővül:
--mirror http://tükörcíme:9999/ubuntu
Az itt megadott tükör címe kerül felhasználásra az újonnan létrehozott vendég |
Nagyobb környezetben hasznos lehet az Ubuntu tárolók helyi tükrének elkészítése. Az apt-mirror csomag biztosítja a tükrözést elvégző parancsfájlt. Minden támogatott kiadáshoz és architektúrához biztosítson 20 GB szabad helyet.
Alapértelmezésben az apt-mirror az /etc/apt/mirror.list
beállítófájlt használja. Telepítéskor csak a helyi gép architektúráját replikálja. Ha más architektúrákat is támogatni szeretne a tükrön, egyszerűen kettőzze meg a „deb” kezdetű sorokat, és cserélje a deb kulcsszót a /deb-{arch} kulcsszóra, ahol az arch az i386, amd64 stb egyike lehet. Egy amd64 gépen az i386 archívumok tükrözéséhez a következő szükséges:
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse /deb-i386 http://archive.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu lucid-security main restricted universe multiverse /deb-i386 http://security.ubuntu.com/ubuntu lucid-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu lucid main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer /deb-i386 http://archive.ubuntu.com/ubuntu lucid main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
Ne feledje, hogy a forráscsomagok nem kerülnek tükrözésre, mivel ezeket a binárisokhoz képest ritkán használják és sokkal több helyet foglalnak, de egyszerűen felvehetők.
Miután a tükör befejezte a replikálást (ez sokáig tarthat), be kell állítania az Apache-ot a tükör fájljainak (alapértelmezésben a /var/spool/apt-mirror
alatt) közzétételére. Az Apache-csal kapcsolatos további információkért lásd a „HTTPD – Apache2 webkiszolgáló” szakaszt.
Könnyű elképzelni, hogy a memóriába írás SOKKAL gyorsabb a lemezre írásnál. Ha rendelkezik elég szabad memóriával, a vmbuilder beállítása RAM lemezre írásra jelentősen gyorsítja a folyamatot. Ezt a --tmpfs kapcsolóval lehet megadni:
--tmpfs OPTS tmpfs használata munkakönyvtárként a méret megadásával, vagy a „-” megadásakor a tmpfs alapértelmezését használja (suid,dev,size=1G).
Emiatt a --tmpfs - hozzáadása jó választás, ha rendelkezésre áll legalább 1 GB szabad memória.
Két lehetőség van:
-
A javasolt módszer a Debian csomag készítése. Mivel ennek bemutatása kívül esik ezen dokumentáció célján, információkért lásd az Ubuntu csomagolási útmutatót. Ebben az esetben hasznos tárolót készíteni a csomaghoz, a frissítések egyszerű elérhetővé tételéhez. Ezzel kapcsolatos információkért lásd a Debian Administration cikkét.
-
Az alkalmazás telepítése saját kezűleg a
/opt
alá, az FHS irányelvek által javasolt módon.
Ebben az esetben példaként a Limesurvey webalkalmazást használjuk, amelyhez virtuális eszközt biztosítunk. Korábban már volt róla szó, hogy a csomagolt verzió elérhető egy PPA-ban.
Ahogyan arról korábban szó volt, a gép első indulásakor kell telepíteni az openssh-server csomagot, hogy a hozzá generált kulcs minden géphez egyedi legyen. Ehhez egy boot.sh
nevű parancsfájlt kell írni, a következőképpen:
# Ez a parancsfájl a virtuális gép első indulásakor fog lefutni. # Rendszergazdai jogokkal fut. apt-get update apt-get install -qqy --force-yes openssh-server
Ezután a parancssort a --firstboot boot.sh kapcsolóval kell bővíteni.
A Mysql és a Limesurvey telepítésekor felhasználói együttműködésre van szükség, ezek beállítására egy login.sh nevű bejelentkezési parancsfájl használatával a felhasználó első bejelentkezésekor kerül sor. A parancsfájllal a felhasználó megadhatja a:
-
Saját jelszavát
-
A használni kívánt billentyűzetkiosztást és más területi beállításokat
A login.sh
a következőképp fog kinézni:
# Ez a parancsfájl a felhasználó első bejelentkezésekor fut le. echo "Az eszköz beállítása hamarosan befejeződik." echo "Ehhez meg kell válaszolnia néhány kérdést, " echo "kezdve a felhasználói jelszavának megváltoztatásával." passwd # a billentyűzet-kiosztás megváltoztatása sudo dpkg-reconfigure console-setup # a mysql kiszolgáló root jelszavának megadása sudo dpkg-reconfigure mysql-server-5.0 #a limesurvey telepítése sudo apt-get install -qqy --force-yes limesurvey echo "Az eszköz beállítva. A használatához nyissa meg a böngészőben a" echo "http://kiszolgáló-IP/limesurvey/admin címet"
Ezután hozzá kell adni a --firstlogin login.sh kapcsolót a parancssorhoz.
Az eszköz rendszeres automatikus frissítéséhez az unattended-upgrades csomagot kell telepíteni, így a parancssor a következővel bővíthető:
--addpkg unattended-upgrades
Mivel az alkalmazás csomagja egy PPA-ban van, a folyamat nem csak a rendszert, de az alkalmazást is frissíteni fogja, ha a PPA-ban lévő verzió frissül.
Az összes fenti kapcsolót tartalmazó parancs a következő:
sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 -o \
--libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition --user user \
--name user --pass default --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://mirroraddress:9999/ubuntu --tmpfs - --firstboot boot.sh \
--firstlogin login.sh es
Ha többet szeretne tudni, kérdései vagy javaslatai vannak, keresse meg az Ubuntu kiszolgáló csapatát:
-
IRC: #ubuntu-server a freenode hálózaton
-
Levelezőlista: ubuntu-server kukac lists.ubuntu.com
-
Nézze meg a Ubuntu wiki JeOSVMBuilder oldalát is.