Azure:使用自定义脚本扩展名预配置linux实例

问题描述 投票:0回答:1

我正在尝试使用自定义脚本扩展来取消配置Azure Linux实例。

我的脚本存储在匿名访问Blob中:

sudo waagent -deprovision+user -verbose -force
exit

我的应用扩展名的命令:

az vm extension set --resource-group rg01--vm-name vm01--name CustomScript --publisher Microsoft.Azure.Extensions --version 2.0  --settings "{'fileUris': [ 'https://mystorageaccount.blob.core.windows.net/scripts/Deprovision.sh' ], 'commandToExecute': 'sh Deprovision.sh'}" 

当我运行az命令时,所有/ var / log / azure子目录和日志都会消失!我可以从堡垒窗口中看出有人试图删除我的用户帐户,因此我确信扩展已配置并运行。

[不幸的是,扩展名将所有状态信息显示为不可用,而我的az命令仅位于此处。一旦取消布建开始,VM活动日志中的“创建或更新虚拟机扩展”项也不显示任何活动。 Azure活动日志建议重新启动,并且我的帐户不再有效。

希望Linux / Azure的人对此有一个食谱...

-

[我在Windows中看到了类似的行为,最终使用此脚本执行Sysprep (-Wait至关重要,因为它迫使Powershell进程等待完成,从而阻止代理返回成功/失败,直到该进程),这样可以防止重新启动。然后,我可以对扩展完成的脚本进行释放。 我怀疑这里发生了类似的事情。

Start-Process -FilePath C:\Windows\System32\Sysprep\Sysprep.exe -ArgumentList '/generalize /oobe /quiet /quit'  -Wait 
linux azure azure-linux azure-vm
1个回答
-1
投票

要知道VM扩展未成功完成的原因。您需要了解VM扩展的工作方式。

VM扩展的工作方式取决于Windows和Linux中的VM Agent。您可以在Understanding and using the Azure Linux Agent中获得更多详细信息。并查看脚本中的command

sudo waagent -deprovision+user -verbose -force

它将取消配置VM代理。因此,当脚本执行完毕后,VM代理将不再起作用,然后将不返回任何消息,并且VM扩展状态将不可用。

您也可以查看How to create an image of a virtual machine or VHD中的步骤。取消配置虚拟机后,您可以继续执行下一步。如果使用VM扩展名,则不要介意其状态。

© www.soinside.com 2019 - 2024. All rights reserved.