About This Page
This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.
Bias Analysis
Bias Types:
⚠️
powershell_heavy
⚠️
windows_tools
⚠️
windows_first
⚠️
missing_linux_example
Summary:
The documentation demonstrates a Windows bias by providing extensive PowerShell-based instructions and automation, referencing Windows-specific tools and modules, and omitting Linux-specific guidance. PowerShell is featured heavily, including for automation and module installation, with no mention of Bash scripting, Cloud Shell, or Linux-native automation. Prerequisites and upgrade steps reference PowerShell and its modules exclusively. While Azure CLI examples are present, there are no Linux shell or cross-platform scripting examples, and PowerShell is often mentioned first or exclusively for advanced scenarios.
Recommendations:
- Provide equivalent Bash or shell script automation for migration tasks, especially for Virtual Machine Scale Set automation.
- Reference Azure CLI and cross-platform tools first or alongside PowerShell in all sections, including prerequisites and automation.
- Include instructions for installing and using Azure CLI and relevant extensions on Linux/macOS.
- Offer guidance for Linux users on how to perform module-based automation, or clarify if certain modules are Windows-only.
- Mention and demonstrate use of Azure Cloud Shell, which supports both Bash and PowerShell, to encourage platform-neutral approaches.
- Ensure that all advanced automation steps have CLI or REST API equivalents, and document them.
Create pull request
Flagged Code Snippets
# Install the AzureLoadBalancerNATPoolMigration module
Install-Module -Name AzureLoadBalancerNATPoolMigration -Scope CurrentUser -Repository PSGallery -Force
$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup"
Remove-AzLoadBalancerInboundNatRuleConfig -Name "myinboundnatrule" -LoadBalancer $loadbalancer
Set-AzLoadBalancer -LoadBalancer $slb
$nic = Get-AzNetworkInterface -Name "myNIC" -ResourceGroupName "MyResourceGroup"
$nic.IpConfigurations[0].LoadBalancerInboundNatRule = $null
Set-AzNetworkInterface -NetworkInterface $nic
$slb | Add-AzLoadBalancerInboundNatRuleConfig -Name "NewNatRuleV2" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -FrontendPortRangeStart 201-FrontendPortRangeEnd 500 -BackendAddressPool $slb.BackendAddressPools[0] -BackendPort 22
$slb | Set-AzLoadBalancer
# Remove the Inbound NAT rule
$slb = Get-AzLoadBalancer -Name "MyLoadBalancer" -ResourceGroupName "MyResourceGroup"
Remove-AzLoadBalancerInboundNatPoolConfig -Name myinboundnatpool -LoadBalancer $slb
Set-AzLoadBalancer -LoadBalancer $slb
# Remove the Inbound NAT pool association
$vmss = Get-AzVmss -ResourceGroupName "MyResourceGroup" -VMScaleSetName "MyVMScaleSet"
$vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].IpConfigurations[0].loadBalancerInboundNatPools = $null
# Upgrade all instances in the VMSS
Update-AzVmssInstance -ResourceGroupName $resourceGroupName -VMScaleSetName $vmssName -InstanceId "*"
$slb | Add-AzLoadBalancerInboundNatRuleConfig -Name "NewNatRuleV2" -FrontendIPConfiguration $slb.FrontendIpConfigurations[0] -Protocol "Tcp" -FrontendPortRangeStart 201-FrontendPortRangeEnd 500 -BackendAddressPool $slb.BackendAddressPools[0] -BackendPort 22
$slb | Set-AzLoadBalancer
# Run the migration command
Start-AzNATPoolMigration -ResourceGroupName <loadBalancerResourceGroupName> -LoadBalancerName <loadBalancerName>