Azure Devops - for ARM template deployment - azure

While Running a job for arm template deployment using a Power shell script it's throwing error like the term New-AzumResourceGroupDeployment is not recognized as a name of cmdlet function script file.can anyone help me understand on this.

Odds are the AzureRM Powershell module isn't installed on the machine. Run the following command in an elevated powershell session: More Detail
Install-Module -Name AzureRM -AllowClobber
I would make a recommendation note to user AzureRm as it has been replaced with the Az module. For Az run: More Detail If the machine has Az already installed on it then skip to the alias section as this would also throw the error you are describing if Az is installed and the script is reference Rm
Install-Module -Name Az -AllowClobber
If you are running powershell that reference the AzureRm module create an alias for it after installing Az by running
Enable-AzureRmAlias -Scope CurrentUser
After the installing the Az Module

Firstly, there is Azure Resource Group Deployment task that could be used to deploy ARM template.
Also, there is Azure PowerShell task that would include many modules, so you can use this task too.
Secondly, the command is New-AzureRmResourcegroupdeployment or New-AzResourceGroupDeployment.
On the other hand, by default, for powershell task, it won't include Azure Modules, you need to install or import it. Check DreadedFrost's reply.
Related article: https://learn.microsoft.com/en-us/powershell/azure/azurerm/install-azurerm-ps?view=azurermps-6.13.0

Related

Unable to install Az powershell module with PS7 on windows10

I am administrator on my Windows10, and trying to install Azure PS module as per the documentation in here.
PS C:\Program Files\PowerShell\7> Install-Module -Name Az -Scope CurrentUser -Force -Allowclobber
However, I get the error message as below..
Install-Package: C:\program files\powershell\7\Modules\PowerShellGet\PSModule.psm1:9711
Line 9711 talledPackages = PackageManagement\Install-Package #PSBoundParameters
Administrator rights are required to install or update. Log on to the computer with an account that has Administrator rights, and then try again, or install by adding "-Scope CurrentUser" to your command. You can also try running the Windows PowerShell session with elevated rights (Run as Administrator).
It does not make sense why it throws this error even though I am already in admin privilege mode. Few other SO answers asked to set to use TLS 1.2, I have done that as well.
Like so [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12.
What else could be the issue ?
Trying to install az module over existing modules will give this error and it appears to be the cause for this issue.
The way to solve this issue is by deleting already existing not in use previous az modules which you can find in the following path -
C:\Program Files\WindowsPowerShell\Modules.
Then run the following command -
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force -AllowClobber
And this will solve your problem.
Also look at az module falsely throws Admin rights required error.
You can also check this discussion and find the similar answer in this comment.

Error in Powershell Azure calls from Jenkins but not Powershell ISE?

I run the following in PowerShell ISE Connect-AzAccount and it works fine , but within Jenkins when run as a Powershell command I get the following error:
The term 'Connect-AzAccount' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
Why would this happen ?
Couple of things to try out:
You do not install AZ and Azure RM side by side , if you have it in the machine , please uninstall the Azure RM
Please try running the following command in order:
Install-Module Az
Import-Module Az
Connect-AzAccount
Additional reference:
https://learn.microsoft.com/en-us/azure/jenkins/execute-cli-jenkins-pipeline
Using Azure CLI in Jenkins pipeline
https://wiki.jenkins.io/display/JENKINS/Azure+CLI+Plugin
Hope it helps.

Az powershell module availability on Microsoft hosted Agents

I have verified the installed software/packages from the link. No were mentioned Az module is available. Is Az module made available on the microsoft hosted agents? If not from when it will be available. We are using ADO custom build tasks and Azure automation accounts with Azure RM module. What should be the best migration to Az module.
Az module is available if you use the latest Azure Powershell task (AzurePowerShell#4). It would pull the Az module automatically.
Agree with #4c74356b41's answer. We have expanded and preloaded some modules in Azure Powershell#4 task, including Az module. This task would load Az cmdlets automatically which do not need you to use Install-Module cmd anymore.
If you do not want to use this task, but only Powershell task, the Az module can also be used, just use one cmd to install module firstly:
Install-Module -Name Az -AllowClobber -Force
This command can be applied in all agents, no matter it is hosted or private one.
With cmd Get-InstalledModule checked, you can see that it is installed successfully:
If you want to know the best migration to Az module, check this doc. It express the details of how should you configure the environment for the migration to succeed. And how should the migration be applied suitable when the environment meets the migration criteria.
The latest available release of AzureRM is 6.13.1. If you don't have
this version installed, your existing scripts may need additional
modification to work with the Az module beyond what's described here
and in the breaking changes list.
If your scripts don't work with AzureRM 6.13.1, update them according
to the AzureRM 5.x to 6.x migration guide. If you use an earlier
version of the AzureRM module, there are migration guides available
for each major version.
AZ is already downloaded on the agent, just not installed
Something like this could work
$env:PSModulePath += ';C:\Modules\az_7.1.0'
Write-Host "##vso[task.setvariable variable=PSModulePath;]$($Env:PSModulePath)"`

New Azure PowerShell Module - command for finding latest version not displaying any output

According to the Prerequisites section of this official Azure documentation you can find the latest version of the new Azure Az module by running Get-Module -ListAvailable Az command. I successfully installed the new module on my Windows 10 Pro - Update 1809. But when I run the above command, I get no output as shown in the image below. Question: What I may be missing here, or is it a bug?
NOTE: The question is specific to the above command for the new Azure Az module and NOT like the one already nicely answered here.
The same behavior as you. The Get-Module cmdlet gets the PowerShell modules that have been imported, or that can be imported, into a PowerShell session. On my side, there is not the name Az module just Az.* modules in the output of Get-Module -ListAvailable. So I get no output by running Get-Module -ListAvailable Az command.
Generally, you could get the PowerShell modules name Az installed on a computer directly by using Get-InstalledModule.

can't install module Azsk CI / CD pipeline when azure devops is installing the module

I have Azsk implemented in my azure devops pipeline. Before anything works finely and i can run the pipeline normally. i didn't changed anything but it gave me this error atm
2018-12-14T10:41:12.7861566Z Installing Module AzSK...
2018-12-14T10:41:58.9483761Z ##[error]Cannot process argument transformation on parameter 'InstalledModuleInfo'. Cannot convert the "System.Object[]" value of type "System.Object[]" to type "System.Management.Automation.PSModuleInfo".
2018-12-14T10:41:58.9850394Z ##[section]Finishing: AzSK_SVTs
Google got me to this : https://github.com/Azure/azure-cli/issues/2357
But this will update the module on my local machine, while the problem is the installation of the module in my pipeline (some kind of container that azure devops is running).
Anyone have this issue lately or does know how to fix this ?
From the official Azsk GitHub:
Error message: "PackageManagement\Install-Package: cannot process argument transformation on parameter 'InstalledModuleInfo'..."
If you have installed AzureRM PowerShell using Azure SDK in your machine, it typically get installed in Program Files. You could run the below command to confirm
Get-Module -Name AzureRM* -ListAvailable
If this is the case, then you need to remove the Azure PowerShell modules installed through Azure SDK completely from the Program Files. You could also take back up in case if you need. AzSK also need AzureRM modules. But it would download from PSGallery instead of from Azure SDK. This downloading of AzureRM modules from PS Gallery would conflict with AzureRM modules installed through Azure SDK. After cleanup, If you again the run the below command, it would fetch AzureRM version 5.2.0 by default into the current user scope instead of in Program Files.
Install-Module AzSK -Scope CurrentUser -AllowClobber
In case you still need to use the other version of AzureRm (that you removed), you can install it from PS Gallery using the command below:
Install-Module AzureRM -Scope CurrentUser -AllowClobber -RequiredVersion <versionNumber e.g. “3.8.0” >
Note: If "-AllowClobber" option is not available in your version of PS, then replace that with "-Force"
If you happen to have multiple versions of AzureRM, then it depends on which version of the module loads first in the PS session. In that case, to avoid confusion, close the installer PS session and in a new PS session run the following first:
Import-Module AzSK
Then you can run one or more AzSK commands or other AzureRm commands. The "Import-Module" ensures that the right version of AzureRM gets loaded into the current session.
So in your case that is Hosted agent, try add PowerShell task before the Azsk task and run the commands above.

Resources