Tag VMs on Azure Stack Edge via Azure PowerShell
This article describes how to tag virtual machines (VMs) running on your Azure Stack Edge Pro GPU devices using Azure PowerShell.
About tags
Tags are user-defined key-value pairs that can be assigned to a resource or a resource group. You can apply tags to VMs running on your device to logically organize them into a taxonomy. You can place tags on a resource at the time of creation or add it to an existing resource. For example, you can apply the name Organization
and the value Engineering
to all VMs that are used by the Engineering department in your organization.
For more information on tags, see how to Manage tags via AzureRM PowerShell.
Prerequisites
Before you can deploy a VM on your device via PowerShell, make sure that:
- You have access to a client that you'll use to connect to your device.
- Your client runs a Supported OS.
- Your client is configured to connect to the local Azure Resource Manager of your device as per the instructions in Connect to Azure Resource Manager for your device.
Verify connection to local Azure Resource Manager
Make sure that the following steps can be used to access the device from your client.
Verify that your client can connect to the local Azure Resource Manager.
Call local device APIs to authenticate:
Provide the username
EdgeArmUser
and the password to connect via Azure Resource Manager. If you do not recall the password, Reset the password for Azure Resource Manager and use this password to sign in.
Add a tag to a VM
Set some parameters.
$VMName = <VM Name> $VMRG = <VM Resource Group> $TagName = <Tag Name> $TagValue = <Tag Value>
Here is an example output:
PS C:\WINDOWS\system32> $VMName = "myazvm" PS C:\WINDOWS\system32> $VMRG = "myaseazrg" PS C:\WINDOWS\system32> $TagName = "Organization" PS C:\WINDOWS\system32> $TagValue = "Sales"
Get the VM object and its tags.
$VirtualMachine = Get-AzVM -ResourceGroupName $VMRG -Name $VMName $tags = $VirtualMachine.Tags
Add the tag and update the VM. Updating the VM may take a few minutes.
You can use the optional -Force flag to run the command without user confirmation.
$tags.Add($TagName, $TagValue) Set-AzResource -ResourceId $VirtualMachine.Id -Tag $tags -Force
Here is an example output:
PS C:\WINDOWS\system32> $VirtualMachine = Get-AzVM -ResourceGroupName $VMRG -Name $VMName PS C:\WINDOWS\system32> $tags = $VirtualMachine.Tags PS C:\WINDOWS\system32> $tags.Add($TagName, $TagValue) PS C:\WINDOWS\system32> Set-AzResource -ResourceID $VirtualMachine.ID -Tag $tags -Force Name : myazvm ResourceId : /subscriptions/d64617ad-6266-4b19-45af-81112d213322/resourceGroups/myas eazrg/providers/Microsoft.Compute/virtualMachines/myazvm ResourceName : myazvm ResourceType : Microsoft.Compute/virtualMachines ResourceGroupName : myaseazrg Location : dbelocal SubscriptionId : d64617ad-6266-4b19-45af-81112d213322 Tags : {Organization} Properties : @{vmId=568a264f-c5d3-477f-a16c-4c5549eafa8c; hardwareProfile=; storageProfile=; osProfile=; networkProfile=; diagnosticsProfile=; provisioningState=Succeeded}
View tags of a VM
You can view the tags applied to a specific virtual machine running on your device.
Define the parameters associated with the VM whose tags you want to view.
$VMName = <VM Name> $VMRG = <VM Resource Group>
Here is an example output:
PS C:\WINDOWS\system32> $VMName = "myazvm" PS C:\WINDOWS\system32> $VMRG = "myaseazrg"
Get the VM object and view its tags.
$VirtualMachine = Get-AzVM -ResourceGroupName $VMRG -Name $VMName $VirtualMachine.Tags
Here is an example output:
PS C:\WINDOWS\system32> $VirtualMachine = Get-AzVM -ResourceGroupName $VMRG -Name $VMName PS C:\WINDOWS\system32> $VirtualMachine.Tags Key Value --- ----- Organization Sales PS C:\WINDOWS\system32>
View tags for all resources
To view the current list of tags for all the resources in the local Azure Resource Manager subscription (different from your Azure subscription) of your device, use the Get-AzTag
command.
Here is an example output when multiple VMs are running on your device and you want to view all the tags on all the VMs.
PS C:\WINDOWS\system32> Get-AzTag
Name Count
---- -----
Organization 2
PS C:\WINDOWS\system32>
The preceding output indicates that there are two Organization
tags on the VMs running on your device.
To view further details, use the -Detailed
parameter.
PS C:\WINDOWS\system32> Get-AzTag -Detailed |fl
Name : Organization
ValuesTable :
Name Count
=========== =====
Sales 1
Engineering 1
Count : 2
Values : {Sales, Engineering}
PS C:\WINDOWS\system32>
The preceding output indicates that out of the two tags, 1 VM is tagged as Engineering
and the other one is tagged as belonging to Sales
.
Remove a tag from a VM
Set some parameters.
$VMName = <VM Name> $VMRG = <VM Resource Group> $TagName = <Tag Name>
Here is an example output:
PS C:\WINDOWS\system32> $VMName = "myaselinuxvm1" PS C:\WINDOWS\system32> $VMRG = "myaserg1" PS C:\WINDOWS\system32> $TagName = "Organization"
Get the VM object.
$VirtualMachine = Get-AzVM -ResourceGroupName $VMRG -Name $VMName $VirtualMachine
Here is an example output:
PS C:\WINDOWS\system32> $VirtualMachine = Get-AzVM -ResourceGroupName $VMRG -Name $VMName PS C:\WINDOWS\system32> $VirtualMachine ResourceGroupName : myaseazrg Id : /subscriptions/d64617ad-6266-4b19-45af-81112d213322/resourceGroups/mya seazrg/providers/Microsoft.Compute/virtualMachines/myazvm VmId : 568a264f-c5d3-477f-a16c-4c5549eafa8c Name : myazvm Type : Microsoft.Compute/virtualMachines Location : dbelocal Tags : {"Organization":"Sales"} DiagnosticsProfile : {BootDiagnostics} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks} PS C:\WINDOWS\system32>
Remove the tag and update the VM. Use the optional
-Force
flag to run the command without user confirmation.$tags = $VirtualMachine.Tags $tags.Remove($TagName) Set-AzResource -ResourceId $VirtualMachine.Id -Tag $tags -Force
Here is an example output:
PS C:\WINDOWS\system32> $tags = $VirtualMachine.Tags PS C:\WINDOWS\system32> $tags.Remove($TagName) True PS C:\WINDOWS\system32> Set-AzResource -ResourceId $VirtualMachine.Id -Tag $tags -Force Name : myazvm ResourceId : /subscriptions/d64617ad-6266-4b19-45af-81112d213322/resourceGroups/myas eazrg/providers/Microsoft.Compute/virtualMachines/myazvm ResourceName : myazvm ResourceType : Microsoft.Compute/virtualMachines ResourceGroupName : myaseazrg Location : dbelocal SubscriptionId : d64617ad-6266-4b19-45af-81112d213322 Tags : {} Properties : @{vmId=568a264f-c5d3-477f-a16c-4c5549eafa8c; hardwareProfile=; storageProfile=; osProfile=; networkProfile=; diagnosticsProfile=; provisioningState=Succeeded} PS C:\WINDOWS\system32>
Next steps
- Learn how to How to tag a virtual machine in Azure using az cmdlets in PowerShell.
- Learn how to Manage tags via AzureRM cmdlets in PowerShell.
Feedback
Submit and view feedback for