Назад | Перейти на главную страницу

Виртуальная машина Azure Ubuntu полностью не отвечает после установки исправлений безопасности и перезапуска

У меня есть виртуальная машина Azure, на которой я размещаю несколько веб-сайтов. Недавно я вошел в систему, и мне потребовались обновления безопасности, поэтому, согласно этой ссылке (https://askubuntu.com/questions/196768/how-to-install-updates-via-command-line), Я запустил этот скрипт.

sudo apt-get update  && sudo apt-get upgrade && sudo apt-get dost-upgrade

Он сделал свое дело, установил патчи, а затем попросил меня перезапустить мою виртуальную машину. После того, как я это сделал, я больше не могу подключиться к нему по ssh, не могу получить доступ к веб-приложениям и не могу пинговать его.

Я попытался перезапустить виртуальную машину на портале Azure, и хотя статус - «Работает», и Azure считает, что виртуальная машина работает, виртуальная машина полностью не отвечает.

У меня такое ощущение, что патчи испортили саму виртуальную машину. Но у меня нет возможности сказать, потому что я не могу подключиться к нему, чтобы узнать, что происходит, и я даже не могу получить доступ к каким-либо журналам.

Что я могу сделать в этой ситуации?

Если у вас виртуальная машина V2, диагностика загрузки может помочь найти проблему:

https://azure.microsoft.com/en-us/blog/boot-diagnostics-for-virtual-machines-v2/

Паскаль

У меня были аналогичные проблемы с виртуальной машиной Ubuntu ARM в Azure. Я вошел в свою виртуальную машину, запустил такое же обновление, что и RoboShop, а затем перезагрузил виртуальную машину. После перезагрузки я не смог войти.

Я не уверен, что вызвало проблему, но я исправил ее, сбросив пароль моей виртуальной машины. К сожалению, вы не можете сбросить пароль через новый портал Azure. Там просто написано «скоро».

Я сбросил пароль через PowerShell, выполнив действия, указанные по адресу:

https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-troubleshoot-ssh-connections/

В итоге шаги следующие:

1) Запустите Azure PowerShell и подключитесь к учетной записи Azure. Если вы похожи на меня и никогда не можете вспомнить, как это сделать, выполните следующую команду:

Add-AzureAccount

2) Переключитесь на команды ARM:

Switch-AzureMode -Name AzureResourceManager

3) Сбросьте SSH-соединение. Команда может занять минуту или две, так что наберитесь терпения. По завершении вы должны увидеть сообщение «Статус: выполнено успешно». Не забудьте все поменять в скобках «<>»:

Set-AzureVMExtension -ResourceGroupName "<ResourceName>" -VMName "<VMName>" -Location "<VMLocation>" -Name "VMAccessForLinux" -Publisher "Microsoft.OSTCExtensions" -ExtensionType "VMAccessForLinux" -TypeHandlerVersion "1.2" -SettingString "{}" -ProtectedSettingString '{"reset_ssh":true}'

4) Перезагрузите виртуальную машину через портал Azure.

5) Установите новый пароль. Обратите внимание, что эта команда просто изменяет пароль существующего имени пользователя. Это примечание о создании нового пользователя. Эта команда также занимает некоторое время и должна выдать сообщение «Статус: выполнено успешно». Измените все в скобках «<>» и не забудьте существующее имя пользователя и новый пароль:

$RGName = '<ResourceName>'
$VmName = '<VMName>'
$Location = '<VMLocation>'
$ExtensionName = 'VMAccessForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version = '1.2'
$PublicConf = '{}'

$PrivateConf = '{"username":"<ExistingUserName>", "password":"<NewPassword>", "ssh_key":"", "reset_ssh":false, "remove_user":""}'

Set-AzureVMExtension -ResourceGroupName $RGName -VMName $VmName -Location $Location -Name $ExtensionName -Publisher $Publisher -ExtensionType $ExtensionName -TypeHandlerVersion $Version -SettingString $PublicConf -ProtectedSettingString $PrivateConf

6) Теперь вы сможете подключиться к виртуальной машине по SSH с новым паролем.

Проверьте, изменился ли общедоступный IP-адрес (происходит, если IP-адрес не настроен как статический). В случае, если IP-адрес используется для подключения из SSH.

Вы знаете, что лучше подключаться, используя DNS-имя :)