Přesměrování monitorovací konzole

Z DCEwiki
Verze z 24. 8. 2011, 11:44, kterou vytvořil Keny (diskuse | příspěvky) (Založena nová stránka: ==Přesměrování monitorovací konzole== {{Pozor|Pokud chcete přistupovat ke grafické konzoli virtuálního stroje přes SPICE nebo VNC protokol a spustíte virtualizov…)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání
Verze k tisku již není podporovaná a může obsahovat chyby s vykreslováním. Aktualizujte si prosím záložky ve svém prohlížeči a použijte prosím zabudovanou funkci prohlížeče pro tisknutí.

Přesměrování monitorovací konzole

Upozornění Pokud chcete přistupovat ke grafické konzoli virtuálního stroje přes SPICE nebo VNC protokol a spustíte virtualizovaný stroj jako démona, ztratíte přístup k monitorovací konzoli a tím i možnost ovládat virtuální stroj ze strany hostitele! Abyste se této situaci vyhnuli, musíte na to při konfiguraci virtuálního stroje pamatovat a monitorovací konzoli přesměrovat.

Přesměrování monitorovací konzole lze nastavit volbou -monitor. QEMU umožňuje nastavit více monitorovacích konzolí, každá však funguje samostatně.

Přesměrování na standardní výstup

Lze provést přes parametr stdio. Jinak přesměrování ma standardní výstup je výchozí volba, pokud se virtuální stroj nepouští v grafickém módu, a s volbou -daemonize

Přesměrování na jinou systémovou konzoli

Lze provést přes parametr tty


Přesměrování na předem zvolený síťový port

Lze provést asi nejjednodušeji nastavením parametru telnet. Viz příklad konfigurace virtuálního stroje:

Poznámka
... -monitor telnet::1234,server,nowait ...

Popis parametrů:

  • Za parametrem telnet může (ale nemusí) být uvedena IP adresa, na které bude vyčkávat telnetový server. Není-li uvedena, použije se výchozí IP adresa hostitele, tedy nikoliv localhost!
  • Není-li za adresou uvedeno číslo portu, bude server vyčkávat na standardním čísle portu pro telnet ()
  • Bez parametru server lze pouze číst výstup, což v případě monitorovací konzole, přes kterou potřebujeme zadávat příkazy postrádá smysl. Tudíž na něj nesmíme zapomenout
  • Parametr nowait zase umožní, aby virtuální stroj nečekal na vaše připojení k monitorovací konzoli. Pokud na něj zapomenete, bude spuštění virtuálního stroje pozastaveno dokud se na monitorovací konzoli nepřipojíte.
Upozornění Pozor, pokud budete mít nakonfigurováno více monitorovacích rozhraní a u některého z nich na parametr nowait zapomenete, bude hostitel se spuštěním virtuálu vyčkávat, dokud se k tomuto rozhraní nepřipojíte!

Na monitorovací konzoli se lze pak lze vzdáleně připojit pomocí aplikace telnet:

Poznámka
user@stroj:~$ telnet <IP hostitele virtuálu> 1234
Trying <IP hostitele virtuálu>...
Connected to <IP hostitele virtuálu>.
Escape character is '^]'.
QEMU 0.13.50 monitor - type 'help' for more information
(qemu)

Jenže takové připojení není nijak zabezpečené a je vhodné maximálně na nějaké pokusy. Proto je lepší použít localhost a zabalit komunikaci do ssh protokolu...

Poznámka
... -monitor telnet:localhost:1234,server,nowait ...

Na monitorovací konzoli se pak lze vzdáleně připojit tak, že se zavolá telnet na vzdáleném stroji skrz ssh:

Poznámka
user@stroj:~$ telnet <IP hostitele virtuálu> 2345
Trying <IP hostitele virtuálu>...
telnet: Unable to connect to remote host: Connection refused
user@stroj:~$ ssh user@<IP hostitele virtuálu> "telnet localhost 2345"
user@<IP hostitele virtuálu>'s password: 
Trying ::1...
Connected to localhost.
Escape character is '^]'.
QEMU 0.13.50 monitor - type 'help' for more information
(qemu)

Pochopitelně podmínkou je, aby měl uživatel, který má mít k monitorovací kozoli přístup měl na hostitelském stroji uživatelský účet s povoleným ssh přístupem.

Presměrování monitorovací konzole do soketu

Pokud však na virtuálního hostitele přistupuje přes ssh více uživatelů a potřebujeme přístup k monitorovací konzoli omezit na úzce vymezený okruh uživatelů, je lepší přesměrovat komunikaci s monitorovací konzolí do unixového soketu. To lze provést přes parametr unix

Poznámka
... -monitor unix:/tmp/lokalni_soket,server,nowait ...

Parametry pro unixový soket:

  • Na rozdíl od připojení přes telnet se za parametrem unix uvádí cesta do adresáře ve kterém se má vytvořit soket (což je soubor typu soket)
  • Pro ostatní parametry server a nowait platí v plné míře to, co bylo uvedeno výše.

Na monitorovací konzoli, přesměrovanou na unixový soket, se pak lze vzdáleně připojit např. pomocí utility unixterm, která je součástí instalačního balíku vde2 (viz VDE v kapitole KVM (konfigurace sítě))

Poznámka
user@stroj:~$ ssh user@<IP hostitele virtuálu> "unixterm /tmp/lokalni_soket"
user@<IP hostitele virtuálu>'s password: 
QEMU 0.13.50 monitor - type 'help' for more information
(qemu)

Pochopitelně uživatel musí mít právo spouštět utilitu unixterm, a také právo zapisovat do vytvořeného soketu /tmp/lokalni_soket.