【问题标题】:Cannot install Azure/AzureRM PowerShell modules on Worker roles无法在辅助角色上安装 Azure/AzureRM PowerShell 模块
【发布时间】:2019-01-24 18:46:23
【问题描述】:

我在 Azure 云服务(经典)上有一个辅助角色,我希望他们在启动时安装 Azure 和 AzureRM PowerShell 模块。我在我的 ServiceDefinition.csdef 文件中添加了一个启动任务:

<Startup>
  <Task commandLine="InstallAzureModules.cmd" executionContext="elevated" taskType="simple" />
</Startup>

InstallAzureModules.cmd 文件如下所示:

PowerShell.exe -ExecutionPolicy Unrestricted .\InstallAzureModules.ps1 >> "D:\InstallAzureModulesLogs.txt" 2>&1

InstallAzureModules.ps1 看起来像这样:

Install-PackageProvider NuGet -Force

Install-Module Azure -AllowClobber -Force

Install-Module AzureRM -AllowClobber -Force

结果我有一个错误磁盘上没有足够的空间,但是当我使用远程桌面连接到任何 Worker 实例并手动运行 InstallAzureModules.cmd 时,所有模块都已安装且没有任何错误。

请帮助安装这些模块。

谢谢。

【问题讨论】:

  • 当你登录到worker角色时,磁盘上有多少空间?另外,为什么要为经典资源安装 RM 模块?
  • @Micah_MSFT,当我登录时,我看到三个驱动器 C、D 和 E,有 93 GB、20 GB 和 1.3 GB 的可用空间。你是对的:我不需要 AzureRM 模块。
  • 感谢您提供详细信息。不知道为什么你会得到一个磁盘空间错误,除非你强迫它安装在 E 驱动器上,但这没有意义。您提到您可以手动安装它们,一旦安装,您是否有理由在启动时安装它们?您应该只需要安装一次命令。而且,由于它适用于经典命令,因此不应对模块进行任何更新,因此我认为不需要每次启动时都安装它们/
  • 只能在现有实例上手动安装 Azure 模块。当工人扩大规模时,新实例将不会安装它。这就是为什么模块安装应该是包的一部分,并在创建时针对每个实例进行处理。

标签: azure-powershell azure-cloud-services azure-worker-roles


【解决方案1】:

在联系微软支持后,问题终于解决了!

根据处理我的请求的支持专业人员的说法,此错误是由于应用程序临时文件夹的重定向造成的。有人建议我通过 link 进行可能的修复,但它没有用。

还提供了对我的 PS 脚本的更新,真正有帮助的是将 TMP 和 TEMP 环境变量设置到驱动器 C 上的文件夹中。所以这是我的最终脚本:

$env_TMP = $env:TMP
$env_TEMP = $env:TEMP
$env:TMP = "C:\_trashable\Modules"
$env:TEMP = "C:\_trashable\Modules"

Install-PackageProvider NuGet -Force

Install-Module Azure -AllowClobber -Force

$env:TMP = $env_TMP
$env:TEMP = $env_TEMP

ECHO "Finished"

【讨论】:

    猜你喜欢
    • 2013-02-15
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多