我有一个Azure虚拟机,我主持了一些网站。 最近,我login,它需要一些安全更新,所以根据这个链接( 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进入,我不能访问Web应用程序,我不能ping它。
我已经尝试在Azure门户中重新启动虚拟机,虽然状态为“正在运行”,但Azure认为虚拟机正在运行,但虚拟机完全没有响应。
我有一种感觉,也许这些补丁损坏了虚拟机本身。 但我无法告诉,因为我无法连接到它看到发生了什么,我什至不能访问任何日志。
在这种情况下我能做些什么?
如果您的VM是V2,引导诊断可能有助于发现问题:
https://azure.microsoft.com/en-us/blog/boot-diagnostics-for-virtual-machines-v2/
帕斯卡尔
我在Azure上的Ubuntu ARM VM上遇到类似的问题。 我login到我的虚拟机,运行类似RoboShop更新,然后重新启动我的虚拟机。 一旦重新启动,我无法login。
我不确定是什么原因造成的,但我通过重置我的虚拟机的密码来修复它。 不幸的是,您不能通过新的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 Portal重新启动虚拟机。
5)设置新的密码。 注意这个命令只是改变一个现有的用户名密码。 它注意到创build一个新的用户。 此命令也需要一段时间,并应产生一个“状态:成功”的消息。 更改“<>”括号中的所有内容,不要忘记现有的用户名和新密码:
$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)现在你应该可以使用你的新密码进入虚拟机。
检查公有IP是否发生了变化(如果IP未configuration为静态,则发生),如果使用Ip从SSH进行连接
这是首选的连接使用DNS名称,而不是你知道的:)