Nestartuje vám OS? V Azure díky sériové konzoli žádný problém.
U lokálního hypervisoru se dostanete do VM i v okamžiku, kdy je s ní nějaký problém – špatně nastavená síť, moc restriktivní firewall, poškozené nastavení mountování disků apod. Ale ve veřejném cloudu je váš přístup do VM postaven na IP komunikaci s SSH nebo RDP, maximálně se můžete podívat na bootovací sekvenci, ale nic neopravíte. Azure je ale jiný – nově přichází s plnohodnotnou sériovou konzolí. Pojďme si ji vyzkoušet.
Proč se sériová konzole hodí
Velký okruh potenciálních problémů se týká síťové komunikace. Stačí omylem zakázat síťovou kartu a máte po přístupu. Nebo možná špatně nastavit IP či zakázat si SSH či RDP na vnitřním firewallu. Další situace se týká spuštěných služeb – například v systemd v Linuxu omylem zakážete spuštění sshd po startu nebo ve Windows zakážete RDP. Může také jít o problém s disky a souborovým systémem. Někdy je při podezření na poškození FS při startu systému nutné něco odklepnout – a v ten okamžik ještě vzdálený přístup nefunguje. Nebo při nastavení mountování v Linuxové fstab spácháte překlep a OS se při startu zastaví.
To jsou všechno situace, které je v cloudu obtížné řešit. Často to vede na nutnost si vyexportovat image, ten napojit do jiné VM a v souborovém systému věci opravovat. Nic moc. Azure ale právě přichází se sériovým přístupem, skutečným řešením. A mimochodem v době psaní článku tohle AWS nemá 🙂
Sériová konzole s Linuxem
Při vytváření VM (nebo klidně později) zapneme Boot Diagnostics. To dřív sloužilo pouze pro jednosměrný sběr logů ze sériové konzole, ale nově umožňuje právě interaktivní přístup.
Připojme se na sériovou konzoli a uvidíme server bootovat. Interaktivní okno je postavené na stejné technologii jako velmi oblíbený Azure Cloud Shell. Můžeme tak například vidět Grub, skočit do něj a nabootovat si do Emergency Mode, což podle konkrétního nastavení OS můžeme posloužit k recovery hesla.
Nebo sledovat start OS a interagovat s ním.
Tady jsem nabootoval do emergency módu.
Díky tomu můžu změnit zapomenuté heslo.