使用Azure PowerShell创建与管理Windows虚拟机
Azure PowerShell是微软开发的并用于从 PowerShell 命令行或脚本创建和管理 Azure 资源。今天主要为大家演示如何使用PowerShell创建运行Windows Server的Azure虚拟机。 部署完成后,连接到服务器并安装IIS,并验证是否可以正常访问。
在使用Azure PowerShell之前,请先确保在您的设备上已经安装有Azure PowerShell模块。
Get-Module -ListAvailable | Where-Object { $_.name -like “*Azure*” }
使用Login-AzureRmAccount命令登录到Azure订阅,并按照屏幕上的说明进行操作。登陆Microsoft Azure China需要使用如下命令登陆
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
使用如下脚本创建资源组
New-AzureRmResourceGroup -Name 365vCloudGroup -Location chinanorth
使用如下脚本定义网络资源
$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name 365vCloudSubnet -AddressPrefix 192.168.1.0/24
使用如下脚本定义虚拟网络
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName 365vCloudGroup -Location chinanorth `
-Name 365vCloudvNet -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
使用如下脚本创建公共IP、DNS服务
备注:如果您执行命令时出现以下错误时,说明当前尚未在Azure中注册相关服务
在当前Azure订阅中,选择资源提供程序,然后注册Microsoft.Insights
使用如下命令创建网络安全组-入站规则。在本例中,将为端口3389创建一个入站规则,该规则允许传入的远程桌面连接
$nsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP -Protocol Tcp -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
创建端口为80创建入站规则,以允许传入Web流量
$nsgRuleWeb = New-AzureRmNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleWWW -Protocol Tcp -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 80 -Access Allow
使用如下命令创建网络安全组
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName 365vCloudGroup -Location chinanorth -Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
使用如下命令创建网卡,并连接到子网、网络安全组和公共IP
$nic = New-AzureRmNetworkInterface -Name myNic -ResourceGroupName 365vCloudGroup -Location chinanorth -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
使用如下命令创建虚拟机用户名和密码
$cred = Get-Credential
使用如下命令创建虚拟机配置。此配置包括部署虚拟机时使用的设置,例如虚拟机映像、大小和身份验证配置
$vmConfig = New-AzureRmVMConfig -VMName 365testVM -VMSize Standard_DS2 | Set-AzureRmVMOperatingSystem -Windows -ComputerName 365testVM -Credential $cred | Set-AzureRmVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest | Add-AzureRmVMNetworkInterface -Id $nic.Id
使用如下命令创建虚拟机
New-AzureRmVM -ResourceGroupName 365vCloudGroup -Location chinanorth -VM $vmConfig
使用如下命令查看Azure虚拟机是否创建成功
Get-AzureRmVM
使用浏览器登陆Azure门户网站 https://portal.azure.cn
查看使用Azure PowerShell创建的Azure 虚拟机
运行以下命令,以返回虚拟机的公共 IP 地址。 需记下此IP地址,以便在后续步骤中使用浏览器连接到它测试Web连接。
Get-AzureRmPublicIpAddress -ResourceGroupName 365vCloudGroup | Select IpAddress
使用以下命令创建与虚拟机的远程桌面会话。出现提示时,输入创建虚拟机时使用的凭据。
mstsc /v:40.125.207.4
使用PowerShell安装IIS
Install-WindowsFeature -name Web-Server -IncludeManagementTools
使用浏览器访问http://40.125.207.4/
使用 PowerShell在Azure商店中搜索搜索虚拟机映像文件
Get-AzureRmVMImageSku -Location “chinanorth” -PublisherName “OpenLogic” -Offer “CentOS”
Get-AzureRmVMImageSku -Location “chinanorth” -PublisherName “MicrosoftWindowsServer” -Offer “WindowsServer”
查看Azure中可用的虚拟机实例大小
Get-AzureRmVMSize -Location chinanorth
使用以下命令调整虚拟机大小
调整VM大小之前,请检查所需的大小在当前VM群集上是否有可升级的配置大小VM
Get-AzureRmVMSize -ResourceGroupName 365vCloudGroup -VMName 365testVM
我们升级到DS4
$vm = Get-AzureRmVM -ResourceGroupName 365vCloudGroup -VMName 365testVM
$vm.HardwareProfile.VmSize = “Standard_DS4”
Update-AzureRmVM -VM $vm -ResourceGroupName 365vCloudGroup
由于我是测试账户,有资源的限制所以无法正常升级
检索特定VM的运行状态
Get-AzureRmVM -ResourceGroupName 365vCloudGroup -Name 365testVM -Status | Select @{n=”Status”; e={$_.Statuses[1].Code}}
在Azure中,虚拟机运行状态主要有以下几种
正在启动 | 指示正在启动虚拟机 |
正在运行 | 指示虚拟机正在运行 |
正在停止 | 指示正在停止虚拟机 |
已停止 | 指示虚拟机已停止。 备注:虚拟机处于停止状态时仍会产生计算费用 |
正在解除分配 | 指示正在解除分配虚拟机 |
已解除分配 | 指示虚拟机已从虚拟机监控程序中完全删除,但仍可在控制面板中使用。 处于“已解除分配”状态的虚拟机不会产生计算费用 |
– | 指示虚拟机的电源状态未知 |
使用 Stop-AzureRmVM 停止并解除分配虚拟机
Stop-AzureRmVM -ResourceGroupName 365vCloudGroup -Name “365testVM” -Force
若要让虚拟机保持已预配状态,请使用 -StayProvisioned 参数
重新启动虚拟机
Start-AzureRmVM -ResourceGroupName 365vCloudGroup -Name 365testVM
删除资源组。删除资源组会删除其包含的所有资源,包括VM、NIC、vNet等
Remove-AzureRmResourceGroup -Name 365vCloudGroup -Force