azure-powershellazure-cloud-servicesazure-worker-roles

Cannot install Azure/AzureRM PowerShell modules on Worker roles


I have a Worker roles on Azure Cloud service (classic) and I want them to install Azure and AzureRM PowerShell modules on startup. I've added a startup task in my ServiceDefinition.csdef file:

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

InstallAzureModules.cmd file looks like this:

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

And InstallAzureModules.ps1 looks like this:

Install-PackageProvider NuGet -Force

Install-Module Azure -AllowClobber -Force

Install-Module AzureRM -AllowClobber -Force

In result I have an error There is not enough space on the disk, however when I connect to any Worker instance using Remote Desktop and run InstallAzureModules.cmd manually all modules are installed without any errors.

Please help to have these modules installed.

Thanks.


Solution

  • Finally after contacting Microsoft Support the issue was resolved!

    According to Support Professional who was working with my request this error is due to a redirection of application temporary folder. I was recommended to go through this link for a possible fix, but it didn't work.

    Also updates to my PS script were provided and what actually helped was setting TMP and TEMP environment variables to a folder on drive C. So here is my final script:

    $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"