42.从非托管磁盘创建虚拟机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了42.从非托管磁盘创建虚拟机相关的知识,希望对你有一定的参考价值。
在上一篇文章中,我从托管磁盘转换出了2个非托管磁盘,一个是系统盘,一个是数据盘
接着我需要利用这个非托管磁盘的系统盘创建一个虚拟机
首选选中这个LinuxWeb02OSDisk文件,复制它的URL
在这里又要使用Microsoft Azure Storage Explorer工具了,登陆您的Azure帐号查看到您的存储资源
因为基于该文件创建虚拟机默认这块按照我之前的文章来操作的话是没有添加.vhd后缀的,但创建的脚本时必须是带.vhd后缀的,否则会创建虚拟机失败,因此需要在这个工具下重命名这些文件,添加.vhd后缀,全部改成如下,并且检查是不是Page Blob,因为虚拟机文件必须存放格式为Page blob
接下来还是利用Azure Powershell登陆到自己的帐户
接着定义一些变量
定义一些变量,为我们下面脚本创建虚拟机
#选择您的订阅ID
Select-AzureRmSubscription -SubscriptionID "e126eea7-****-****-****-464612ef552d"
#指定虚拟机名称
$vmName = "LinuxWeb02"
#指定资源组名称
$rgName = "ServersResourceGroup"
#查看子网ID
$vnet = Get-AzureRmVirtualNetwork -Name "Servers-vNet" -ResourceGroupName $rgName
$subnet01 = Get-AzureRmVirtualNetworkSubnetConfig -Name "Servers10.0.2.0" -VirtualNetwork $vnet
#创建一个公网IP地址
$publicIP = New-AzureRmPublicIpAddress -Name "Linuxweb02-PublishIP" -ResourceGroupName $rgName -Location "eastasia" -AllocationMethod Dynamic -IpAddressVersion IPv4 -Force
#创建网卡
$NIC = New-AzureRmNetworkInterface -Name "Linuxweb02-NIC" -ResourceGroupName $rgName -Location "eastasia" -SubnetId $subnet01.Id -PublicIpAddressId $publicIP.Id -PrivateIpAddress 10.0.2.5
#配置要使用的存储账号以及系统盘名称
$OSDiskName = $vmname + "_OSDisk"
$OSDiskUrl = "https://serverdisk01.blob.core.windows.net/vhds/LinuxWeb02OSDisk.vhd"
#生成虚拟机的配置
$vmconfig = New-AzureRmVMConfig -VMName $vmname -VMSize Standard_A1 | Set-AzureRmVMOSDisk –Name $OSDiskName -VhdUri $OSDiskUrl -CreateOption attach -Linux | Add-AzureRmVMNetworkInterface -Id $NIC.Id -Primary
#创建虚拟机
New-AzureRmVM -ResourceGroupName $rgName -Location "eastasia" -VM $vmconfig
等一会后,在Azure管理门户中就可以看到虚拟机已经正在创建了
创建完成以后如果需要添加数据磁盘可以在磁盘处添加
选择现有Blob
确定,然后点击保存
如果要添加诊断磁盘在这里选择就OK了
默认这样创建出来的虚拟机是没有NSG的,没有NSG等于没有防火墙,属于全端口开放,如果需要控制端口访问就需要为该虚拟机添加一个NSG再定义访问端口策略就可以了
接下来为了虚拟机的安全访问,我需要添加NSG实现端口访问控制,在所有服务里选择“网络安全组”
添加命名一个NSG
接下来选择虚拟机的这张网卡
选择网络安全组——编辑
选择之前创建好的NSG保存
这下该虚拟机有NSG了,可以添加端口了,比如必要的SSH端口访问
接下来是HTTP
OK,测试下访问,没问题了
以上是关于42.从非托管磁盘创建虚拟机的主要内容,如果未能解决你的问题,请参考以下文章