自定义脚本扩展仅可临时使用吗?

时间:2019-06-20 20:32:22

标签: azure

我正在为应用程序创建Azure Scaleset。我进行了设置,以便在横向扩展时可以下载我过去使用的Powershell脚本,该脚本将:

  1. 将CI / CD部署代理下载到新的VM,安装并完全配置它。
  2. 在我的CI / CD管道中注册新的部署目标,并将其配置为标记为我的应用程序。

仅此而已。从那里,我的CI / CD管道将自动将我的程序部署到这台新机器上,并在它检测到该应用程序的新目标时为我配置它。那部分工作正常。几周前我第一次对其进行设置时,它运行良好,并且可以横向扩展并完美地自动部署,而没有任何问题。

我今天注意到,突然有一个403试图在扩展期间将扩展名下载到计算机上,而几天前却没有这样做。就像我的扩展名过期了一样。这会使我的比例尺进入失败状态,直到它放大并仅保留始终作为基准的原始VMS。

我已经重新安装了它,并且可以正常工作,但是一段时间后它又坏了。我查看了我的scaleset的JSON,它的名称类似于iaasv2tempstore,因此它使我相信所有扩展都不是永久的。

这给我留下了两个问题:

  • 在Azure删除脚本扩展使其无效之前,该脚本扩展的平均预期寿命是多少?
  • 是否有一种解决方法或替代方法可以使我将该名称永久化,或将其存储在我可以控制的位置,以使脚本扩展名不需要经常重新安装?

2 个答案:

答案 0 :(得分:0)

它不会过期。如果尝试从Blob下载时获得403,则可能表示您正在使用SAS令牌进行身份验证,并且该令牌已过期。如果脚本扩展名可以访问url,它将不会停止工作(例如,除非您阻止它与Azure对话)。

答案 1 :(得分:0)

为了解决该问题,我最终遵循了here所做的一些操作。

Azure乏味的自定义扩展ui的一般解决方法:

  1. 将脚本自己上传到blob存储中,并使用VMSS可以访问的帐户。
  2. 运行此AZ powershell脚本。如果正在扩展或缩小过程,它还不够完善,无法处理更新实例,但可以完成工作。

    $ fileUri = @(“ https://somebloburi/blob/filename.ps1”) $ storageAcctName =“帐户” $ storageKey =“帐户密钥”

    $ settings = @ {“ fileUris” = $ fileUri; “; commandToExecute” =“ powershell -ExecutionPolicy不受限制-File filename.ps1”}; $ protectedSettings = @ {“ storageAccountName” = $ storageAcctName; “ storageAccountKey” = $ storageKey};

    $ myVMSS = Get-AzVmss -ResourceGroupName“ VMSS-RG” -VMScaleSetName“ myVmss”

    $ myVMSS = Add-AzVmssExtension -VirtualMachineScaleSet $ myVMSS-名称“ CustomScriptExtension”-发布者Microsoft.Compute-类型“ CustomScriptExtension” -TypeHandlerVersion“ 1.7” -AutoUpgradeMinorVersion $ True-设置$ settings -ProtectedSetting $ protectedSettings Update-AzVmss -ResourceGroupName“ VMSS-RG” -VMScaleSetName myVmss -VirtualMachineScaleSet $ myVMSS

  3. 如果您不编写自动升级的脚本,则可以从用户界面自行完成。

相关问题