云计算之路-试用Azure:制作虚拟机自定义镜像
虚拟机自定义镜像(Image)是一个很有用的功能,可以在一台虚拟机上配置好基本的系统环境,然后做个镜像,以后创建虚拟机直接从这个镜像创建,会省掉很多重复的配置工作。
阿里云与UCloud都有这个功能,Azure当然也少不了,这也是云服务商标配的免费服务。
下面我们分享一下我们在Azure中试用“制作虚拟机自定义镜像”功能的经历。
(一)准备工作
创建一台原装虚拟机,假设名叫blogserver1。创建好之后,登录进去进行基本部署环境的配置,比如安装IIS并进行相关配置(支持高并发的IIS Web服务器常用设置)。
(二)在不看任何帮助文档的情况下凭使用直觉进行操作
1、进入VIRTUAL MACHINES -> IMAGES,点击CREATE;输入IMAGE NAME,选择之前创建的blogserver1虚拟机的VHD URL,选中“I have run Sysprep on the virtual machine associated with this VHD.”(见下图)
2、点击Ok按钮。。。创建失败,错误信息如下:
VHD http://..../vhds/blogserver-blogserver1-2013-09-11.vhd 已作为 ID 为 blogserver1-blogserver1-0-201309110319510234 的资源注册到映像存储库。
错误提示信息让人不知所措。
关闭blogserver1虚拟机进行操作,也是同样的错误。
几经折腾无果,放弃。
(三) 在帮助文档下进行操作
帮助文档来自How to Capture an Image of a Virtual Machine Running Windows Server。
1、远程桌面登录至虚拟机,进入 C:\Windows\System32\Sysprep\ 目录,运行sysprep.exe,选中Generalize,选择Shutdown(见下图)。
2、点击Ok之后,进行Sysprep操作(见下图)。。。过了一会,远程桌面失去了连接。
3、等了大约20分钟左右(由于没有进度指示,这个等待过程有点难受),在Azure管理控制台看到blogserver1的状态由于Running变为Stopped。
4、这时虚拟机管理控制台的CAPTURE按钮变亮,点击一下,出现如下的画面:
5、指定IMAGE NAME为webserver,选中“I have run Sysprep on the virtual machine”,然后看到IMPORTANT NOTE:
The virtual machine will be deleted when the image is captured.
由于上午发了一篇不专业的临时工水准的随笔——云计算之路-试用Azure:每一次删除都让人如此心惊,才知道了删除虚拟机的真相,现在就可以坦然面对了。
6、片刻工夫,虚拟机创建完毕。
7、从这个名为webserver自定义镜像创建虚拟机blogserver2。
8、创建成功
(三)恢复原装虚拟机blogserver1
用于制作镜像的blogserver1虚拟机在创建镜像时被删除了,现在通过“CREATE A VIRTUAL MACHINE from MY DISKS”把它恢复起来。
当blogserver1虚拟机正常运行之后,用远程桌面进行登录,结果怎么登录也登录不上,每次都提示用户名/密码错误。为了避免再次发临时工水准的文章,经过了多次确认,确认用户名/密码没有错。难道在制作镜像进行Sysprep的过程中,Windows管理员帐户的密码被重置了?而我们无法验证这一点,因为在Azure中无法重置虚拟机的管理员密码。只能让这台虚拟机报废。
(四)试用感言
我们设想的制作虚拟机自定义镜像的功能应该是这样的:选择一台虚拟机,点击“制作镜像”,然后去一下洗手间,回来之后“镜像”就创建好了。
创建镜像竟然把运行中的原装虚拟机给删除了,恢复之后还连不上,也就是说虚拟机要为制作镜像“献身”。在阿里云没遇到过,在UCloud也没碰到过,只有Azure,而且在阿里云/UCloud中制作镜像时对当前这台正常运行的虚拟机没有任何影响。Azure在这个功能的设计上需要改进。
另外,我们的Azure试用系列博文只是表达我们试用时的真正感受,并没有说我们的试用是专业的。微软也没有说Azure只适合专业人员用,不适合临时工用。作为一名用户,发现问题就吐槽,也不为过。好的产品不是赞美出来的,而是在解决用户各种***钻的问题中成长出来的。