У меня есть виртуальная машина 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, выполнив действия, указанные по адресу:
В итоге шаги следующие:
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-имя :)