上传VHD到Azure并创建虚拟机

其实对于Azure存储最必要的是搞明白存储账户、容器以及Blob之间的关系和作用。那么接下来可能有的用户希望可以在Azure上创建基于客户端版操作系统的VM,比如Win7或者Win8之类的,但显然在Azure的库中并没有提供包含这些OS版本的可用实例,那么此时就需要用户自行上传VHD来实现诸如此类的需求了,但遗憾的是Azure图形化UI上并没能找到上传VHD的入口 :( 不过不用不愁,凡事一定有路子可走,微软也不会没有考虑到用户这方面的使用场景,其实我们可以通过PowerShell的方式来实现。

####################################################################

首先要想利用PowerShell来管理Azure上的订阅,我们需要单独下载Azure PowerShell的module,链接如下图所示,随便网上一搜很容易找到:

wKioL1QkOGLT08MPAATgWpRHPAo557.jpg

下载后的安装文件如下图所示:

wKiom1QkOD_x3wMVAAUZtIAjWb8533.jpg

同样和WAP一样也是利用Web平台安装程序来进行在线下载并安装的:

wKiom1QkOECxwEjXAAHTRJ_AJzg434.jpg

安装成功之后,可以在PowerShell里验证是否有效,如下图所示我们可以看到Azure PowerSehll module的安装路径:

wKioL1QkOGXSjMCIAAJr2D4JYh8333.jpg

#####################################################################

接下来就准备在我们的本地计算机,或者说是私有云(也可称为本地环境on-premise)下来管理我们Azure上的订阅,在管理之前首先要建立一个连接,也可以理解成要使双方彼此认识一下,通过下方的Get-AzurePublishsettingFile可以调出一个页面并提示用户输入Azure上的用户名及密码,验证通过之后将会下载一个包含所有订阅信息的文件。

wKioL1QkOGbjZaw1AAWm2_BWStM978.jpg

那么在使用get-azurepublishsettingfile时要特别留意一个参数,也就是-environment,我们可以手动制定environment的值为“azurechinacloud”,这个特别代表了由世纪互联运营的大陆版Azure。

wKiom1QkOEOBRQ8NAAa5wKy76sY665.jpg

如下图执行该命令:

wKioL1QkOGjROzxAAAFtVfY3TZA007.jpg

输入相应的Azure凭据之后,会下载一个配置文件,里面包含了该凭据下所有权限范围内的订阅信息。

wKiom1QkOESTVOcvAAKoTZx94U4386.jpg

接下来就是把这个配置文件导入到本地计算机内,这样就相当于让本地计算机识别到了Azure上的内容,然后通过网络再加以远程调用和管理等许多动作;利用import-azurepublishsettingfile就可以导入配置文件。

wKioL1QkOGqTOt5nAAc249HTPf8572.jpg

在导入的时候需要指定-publishsettingfile的具体路径,导入成功后会像下图中显示出该文件内包含的订阅信息。

wKiom1QkOEaSoCL2AAOVBsYtgxE425.jpg

接着在本地计算机通过get-azuresubscription就可以直接看到这些订阅信息了。像下图中我所导入的配置文件中就包含了两个订阅,一个叫“IN_WITEST”,另一个叫“IN-WICRESOFT”,此外我们还注意到每个订阅中都有IsDefault和IsCurrent属性,也就是说如果本地计算机已经识别了多个订阅的话,那么它会默认有一个当前选择,你后续所做的操作如果没有特殊指明的话,将会对这个默认选择的订阅生效,而不会影响到其他订阅里的内容。

wKiom1QkOEfgdZfdAAQaWRreR-M605.jpg

那么如果我想对另外一个非default订阅做操作怎么办,就需要使用select-azuresubscription来手动选择订阅了,而且可以指定-current来讲该选中的订阅变更为当前做指定的订阅,这样后续的操作和变更将会仅对这个“当前选中”的订阅生效。

wKioL1QkOG3ST6eOAAb9izjqH6o616.jpg

在下图中我就将IN_WITEST选择成了当前订阅,然后再使用add-azurevhd命令来上传VHD文件,特别要说明的是,add-azurevhd只支持*.VHD 格式,不支持VHDX(毕竟大小容量是个问题。。。),而对于要上传的VHD是否为固定大小磁盘(fixed)并没有强制要求,只是一旦上传成功后,在Azure那端该VHD将自动变成为固定大小(fixed)。如下图所示命令,使用add-azurevhd并附加-destination和-localfilepath来指定目标Blod地址和本地源文件路径。此外上传的快慢和稳定性则完全取决于链路带宽质量了。

wKioL1QkQDKSN3nmAALB5V8TLrw223.jpg

经过了漫长的等待(屌丝环境)之后,上传成功了~,在Azure的Blod里可以看到名为WIN7.vhd的文件。

wKiom1QkOEqxTbPNAAKDWm4NmVw053.jpg

那么我们在Azure一旦有了自定义的VHD文件后,就可以创建自己的映像了,说白了也就是自己的VM模板。如下图所示在Azure虚拟机服务中点击“创建映像”。

wKioL1QkOG_w5l9OAAIm-Q92Qn4367.jpg

选择刚才上传成功的WIN7.vhd,如下图所示:

wKiom1QkOEzxCTLMAAHUYLzqSHk253.jpg

此外输入该映像的名称、说明以及操作系统平台和是否已经做了Sysprep封装。

wKioL1QkOHKzEpjfAAH4sbxTr8c776.jpg

映像创建是一个非常迅速的过程,很快就可以使用了。

wKioL1QkOHPwd_6GAAItos5vIK4118.jpg

接下来试一试用刚才创建的映像来生成一台VM;如下图所示,选择从库中创建虚拟机。

wKiom1QkOE_jakEKAAGvXc-1W0I002.jpg

在“我的映像”了可以看到刚才自己创建的名为WIN7_x64的映像(自己动手丰衣足食)。

wKiom1QkOFCT2QCNAAJcbCJakcw848.jpg

接下来就和普通创建虚机没什么区别,按照需要走完向导。

wKioL1QkOHaiLJVIAAJNVbKS8mI626.jpg

选择要放置的云服务以及开放哪些端口(“终结点”这翻译实在是太迷惑人了。。。)。

wKiom1QkOFOhyyRqAAJ6a6ZiZOE112.jpg

最后确认安装了VM代理(VM代理还是很有必要的,日后再说说有它的好处)。

wKiom1QkOFOBApeEAAIVMbjFGeE028.jpg

创建虚拟机也是非常迅速的,刚才通过自定义映像而创建的Windows7这台虚机已经可以使用了。

wKiom1QkOFahMdyUAAJ7JTej7so876.jpg

可以看到监控服务也有数据产生了,接下来就通过RDP直接远程登录看一看。

wKioL1QkOHyA0iKzAAL3a1JGueI699.jpg

恩,操作系统是Windows7没错,看来使用上也都没什么问题,这样就实现了最初的需求。

wKiom1QkOFmRKPQ8AALWAtqvc0M163.jpg

######################################################################

总结一下,通过Azure PowerShell就可以上传自己的VHD到公有云之上,并创建相对应的虚拟机资源,这样用户的可选择性就不仅局限在Azure本身提供的那些OS版本了,遗憾的是格式方面还仅支持VHD,现在大部分用户默认创建可能都不会特意的去修改,所以基本上生成的是VHDX格式,那么就还需要进行额外的转换工作,另外在上传过程中对于网络的质量也是要求挺高的,当然了如果不着急就这么慢慢挂着也是可以的。

 


本文转自maomaostyle 51CTO博客,原文链接:http://blog.51cto.com/maomaostyle/1558301,如需转载请自行联系原作者


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值