Portál AbcLinuxu, 30. dubna 2025 10:17
Management VMware server 2 z CLI
6.7.2011 12:13
| Přečteno: 1388×
|
| poslední úprava: 14.7.2011 14:27
Po dlouhé době jsem se rozhodl pro další zápisek do mého umírajícího blogu:) Opět se vrátím k mému oblíbenému virtualizačnímu nástroji VMware server 2. Tentokrát se však budu zabývat ovládáním z CLI.
Úvod
Ti z vás, kteří používají VMware server 2 jistě zaregistrovali, že jediné webové prohlížeče pomocí nichž je možné s virtuálními stroji (dále jen VM) pracovat jsou IE (které verze konkrétně nevím) a FF (do verze 3.5 včetně). Ne každý však ví, že VM se dají poměrně dobře ovládat i z CLI. Přejdu tedy rovnou k věci... Jen ještě dodám, že jsem vše testoval na Debian Lenny 32bit, kernel 2.6.30, fs ext3.
Vytvoření virtuálního stroje z CLI
Nejprve ty špatné zprávy, ať už to máme za sebou. VM nejde z CLI vytvořit což je dost zásádní nevýhoda, která se v praxi obchází hackem. O co přesně se jedná? Vytvoření VM se skládá ze dvou základních kroků:
1) Vytvoření konfiguračního souboru s příponou .vmx což není možné udělat z CLI. Je však možné použít .vmx soubor jiného VM a ten modifikovat dle našich potřeb. Jedná se o txt soubor s parametry VM. Jako nápovědu popisující význam jednotlivých parametrů lze použít třeba tento návod.
2) Vytvoření image VM. To lze snadno provést pomocí programu /usr/bin/vmware-vdiskmanager. Při spuštění bez parametrů se vypíše přehledná nápověda i s příklady použití. Tento program umožňuje mnohem více než jen vytvoření image VM. Např. zvětšení již vytvořeného image VM atd. Dále uvedu pro názornost příklad vytvoření image VM.
vmware-vdiskmanager -c -s 10GB -a ide -t 0 image.vmdk
Popis parametrů:
-c - vytvoření image
-s - velikost image
-a - adapter (ide, buslogic nebo lsilogic)
-t - id typu disku (nabývá hodnot 0-5) viz. dále v angličtině.
Disk types:
0 : single growable virtual disk
1 : growable virtual disk split in 2GB files
2 : preallocated virtual disk
3 : preallocated virtual disk split in 2GB files
4 : preallocated ESX-type virtual disk
5 : compressed disk optimized for streaming
Namountování diskových oddílů VM
Pro namoutování diskových oddílů VM slouží program vmware-mount. Při spuštění bez parametru se vypíše přehledná nápověda. Doposud jsem zkoušel namountovat diskový oddíl z VM s OS Windows XP SP3 (fs ntfs) a OS Ubuntu (fs ext4, kernel 2.6.31) a provést na něj zápis (číst šel samozřejmě také). VM s Ubuntu po spuštění nenabootoval, zobrazila se chybová hláška, o nekonzistenci fs a nemožnosti spustit fsck(vyzkouším ještě VM s fs ext3). VM s Windows po provedení zápisu fungoval v pořádku. Dále uvedu příklady pužití vmware-mount pro systém s Linuxem a Windows.
Namoutovani diskového oddílu VM s OS Linux:
- nejprve zjistíme jaké diskové oddíly VM obsahuje
vmware-mount -p /path/to/vmdkfile/Linux.vmdk
namoutování prvního diskového oddílu
vmware-mount /path/to/vmdkfile/Linux.vmdk 1 /mount/point
odmountovaní všech diskových oddílů (pokud by nešlo, použijeme -X, což je force unmount)
vmware-mount -x
Namoutování diskového oddílu VM s OS Windows:
- nejprve zjistíme jaké diskové oddíly VM obsahuje
vmware-mount -p /path/to/vmdkfile/Windows.vmdk
namoutoání prvního diskového oddilu
vmware-mount /path/to/vmdkfile/Windows.vmdk 1 /mount/point
část výpisu příkazu mount
/dev/loop0 on /mount/point type ntfs (rw)
na namoutovaný oddíl se mi vsak nepodařilo zapsat tak jsem ho odmountoval a znovu namoutoval pomocí ntfs-3g
umount /mount/point
mount -t ntfs-3g /dev/loop0 /mount/point
část výpisu příkazu mount (nyní je možné na diskový oddíl zapisovat)
/dev/loop0 on /mount/point type fuseblk (rw,allow_other,blksize=4096)
odmountovaní všech diskových oddílů (pokud by nešlo, pouzijeme -X, což je force unmount)
vmware-mount -x
Poznámky:
Pokud by se odmoutovani z nějakého důvodu nedařilo, můžeme zkusit následující postup:
losetup -d /dev/loop0
vmware-mount -x
Management VM
Tady se dostáváme asi k tomu co budeme nejvíce potřebovat a to je ovládání VM z příkazové řádky. Pro management VM se používá program /usr/bin/vmrun (/usr/lib/vmware/bin/vmrun). Při spuštění bez parametrů se vypíše přehledná nápověda i s příklady použití. Dále uvedu a okomentuji několik příkladů použití.
-
vypíše seznam VM v "Inventory"
vmrun -T server -h https://IP_address:8333/sdk -u user -p password listRegisteredVM
vypíše seznam spuštěných VM
vmrun -T server -h https://IP_address:8333/sdk -u user -p password list
spustí|zastaví|restartuje|suspenduje|pausne|odpauzuje VM
vmrun -T server -h https://IP_address:8333/sdk -u user -p password start|stop|reset|suspend|pause|unpause "[storage] guest_os/guest_os.vmx"
Jako parametr v "" předáváme jméno storage a VM, zjistíme ho tak, že si vypíšeme seznam VM v "Inventory" příkazem listRegisteredVM (viz. první ukazkový příklad), další možností je web konzole.
vypíše seznam procesu ve VM
vmrun -T server -h https://IP_address:8333/sdk -u user -p password -gu guest_user -gp guest_user_password listProcessesInGuest "[storage] guest_os/guest_os.vmx"
ukončí zadaný proces ve VM podle PID
vmrun -T server -h https://IP_address:8333/sdk -u user -p password -gu guest_user -gp guest_user_password killProcessInGuest "[storage] guest_os/guest_os.vmx" PID
vytvoří screenshot VM
vmrun -T server -h https://IP_address:8333/sdk -u user -p password -gu guest_user -gp guest_user_password captureScreen "[storage] guest_os/guest_os.vmx" /path/to/image.png
Poznámky:
Hesla samozřejmě nemusíme zadávat do CLI, můžeme je mít uložena např. v souboru, ze kterého je přečteme. Příklad pro heslo uložené v souboru "pass.txt":
vmrun -T server -h https://IP_address:8333/sdk -u user -p $(cat pass.txt) listRegisteredVM
Jako protokol v adrese není nutné zadávat https, můžeme použít i http, nesmíme však zapomenout změnit i port na 8222.
Podrobnější info o ovládáni VMware server z CLI najdete v uvedeném zdroji. Za konstruktivní připomínky a náměty k zápisku budu rád.
Zdroje:
[1] www.vmware.com/pdf/vix180_vmrun_command.pdf
Anketa
Tiskni
Sdílej:
Komentáře
Vložit další komentář
6.7.2011 12:53
xkucf03 | skóre: 49
| blog:
xkucf03
Re: Management VMware server 2 z CLI
Založit nové vlákno •
Nahoru
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.