четверг, 29 марта 2018 г.

Azure VM Serial Console. Первый взгляд

Пару дней назад Microsoft анонсировала появление нового функционала для Azure VM - Serial Console. Лично я давно ждал, что появится возможность получить прямой доступ к консоли виртуальной машины. Данный функционал был всегда доступен в облаках публичных провайдеров, которые строили решения на базе Windows Azure Pack, Apache CloudStack, Openstack и других. Посмотрим, что получилось у Microsoft.


На портале Azure меню "Support + Troubleshooting" появился пункт "Serial Console". Как видим, пока функционал находится в стадии "Preview":


Отлично, посмотрим, на что она способна. Переходим в консоль и сразу получаем ошибку:

The serial console connection to the VM encountered an error: 'Not Found'
 (404) - Unable to retrieve boot diagnostics settings for 'Win2k16'. To use serial console, ensure that boot diagnostics is enabled for this VM. For more information see https://aka.ms/serialconsolehelp.

Ок, без проблем. Переходим в меню "Boot diagnostics" (есть на скриншоте выше) и активируем её. Как видим, для этого нам потребуется указать Storage Account:



Но и теперь мы подключиться не сможем. Дело в том, что вначале надо включить возможность использования "Accessing Serial Console" в нашей Windows Server (десктопные ОС не поддерживаются). Вроде всё доступно описано в документации, но там закралась одна ошибка. При выполнении команды bcdedit получаем ошибку:

PS C:\Users\tema> bcdedit /ems {current} on
The specified EMS settings are not valid.
Run "bcdedit /?" for command line assistance.
The parameter is incorrect.

На самом деле указывать парамерт {current} не надо. Достаточно выполнить "bcdedit /ems on". Итого получается:

bcdedit /ems on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200

После выполняем рестарт виртуальной машины любым удобным для нас способом. Увы, иначе пока нельзя, но оно того стоит!

Подключившись к консоли снова, увидим приглашение командной строки:

SOC>

Теперь попробуем выполнить простейшую команду PowerShell для теста. Для этого нам придется создать канал cmd, зайти в него и залогиниться. Это выглядит примерно так:

SAC>cmd
The Command Prompt session was successfully launched.
SAC>
EVENT:   A new channel has been created.  Use "ch -?" for channel help.
Channel: Cmd0002
SAC>ch
Channel List

(Use "ch -?" for information on using channels)

# Status  Channel Name
0 (AV)    SAC
1 (AV)    Cmd0002

SAC>ch -si 1

После этого мы перейдем в канал Cmd0002, где надо будет залогиниться. Дальше увидим до боли знакомое приглашение консоли:


Осталось только перейти в PowerShell (понятно, что выполнить единичную команду PS можно и из CMD) с помощью команды... powershell :) После этого мы сможем выполнить командлет, например, Get-ComputerInfo.

Заключение.

Microsoft наконец-то сделала в своем облаке инструмент, с помощью которого, например, можно поправить настройки сети, если системный администратор накосячил. Это действительно очень здорово, так как раньше в таком случае нужно было выполнять рестарт виртуальной машины. Увы, и это помогало не всегда (если пользователь отключил сервисы Windows Azure внутри ВМ, например). Да, GUI нам все еще недоступен. Он мог бы пригодиться, если необходимо запустить виртуальную машину в безопасном режиме (F8 при загрузке). Я очень надеюсь, что Microsoft работает над расширением функционала консоли. Но и то, что есть сегодня, уже большой шаг вперед.


Комментариев нет:

Отправить комментарий