在Azure China用自定义镜像创建Azure VM Scale Set

在此感谢世纪互联的工程师Johnny Lee和Lan,你们给了我很大的帮助。因为Azure China的官网没有给出完整的步骤,所以我在这里把完整的步骤总结一下,希望对大家有所帮助。

Azure Global有一篇介绍如何用自定义镜像创建Azure VM Scale Set的文章。因为里面用到的"type": "Microsoft.Compute/images" 部分,我自己没在Azure China上跑通,所以这一部分靠其他大神继续探索吧。

https://docs.microsoft.com/zh-cn/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-mvss-custom-image

好的,现在让我们看看如何在Azure China里用自定义Image 创建 Azure VM Scale Set

第一步:从Azure Portal创建虚拟机

虚拟机创建好了,Azure 除了帮我们创建虚拟机之外,还创建了许多别的东西

第二步 : 连接到虚拟机,做一些自己需要的定制化,比如,我在根目录下建一个txt文件

第三步: 在虚拟机上运行SysPrep.exe

可参照官网文档,在此不再赘述了,唯一要强调的是不要忘记勾选“Generalize” checkbox。

https://www.azure.cn/documentation/articles/virtual-machines-windows-generalize-vhd/

第四步 : 等虚拟机完全关机后,运行PowerShell命令,创建虚拟机镜像

可参考官方文档 https://www.azure.cn/documentation/articles/virtual-machines-windows-capture-image/,我自己用的命令是

Login-AzureRmAccount –EnvironmentName AzureChinaCloud

Select-AzureRmSubscription -SubscriptionId YourSubscriptionId

Stop-AzureRmVM -ResourceGroupName 'liqiangtest' -Name 'imagevm'

Set-AzureRmVM -ResourceGroupName 'liqiangtest' -Name 'imagevm' -Generalized

Save-AzureRmVMImage -ResourceGroupName 'liqiangtest' -VMName 'imagevm' -DestinationContainerName 'myvhds' -VHDNamePrefix 'template' -Path d:\SampleTemplate.json

第五步:等上述命令运行完之后,打开d:\SampleTemplate.json,就可以看到那个镜像的Url了。

第六步 : 通过VS2017发布VM Scale Set

新建一个ARG项目

选择官方的模板

访问https://github.com/dafoyiming/azure-quick-start-china/tree/meat/201-vmss-windows-customerimage-autoscale-existing-vnet,把azuredeploy.json和azuredeploy.parameters.json下载下来,并用他们的内容并替换WindowsVirtualMachineScaleSet.json和WindowsVirtualMachineScaleSet.parameters.json的内容

双击WindowsVirtualMachineScaleSet.parameters.json,填入必须的内容

那个Url,就是我们前面在d:\SampleTemplate.json里那个Vhd的Url。Subnet的话可以用我们在创建虚拟机时创建的虚拟网。SubSiteResourceId的话,可以用虚拟网的ResourceId拼上subnets/default(因为我的子网名叫default)

右击Project,点击Deploy-》New-》Deploy,然后就静静等待吧,20分钟,Maybe

显示我们创建成功。回到Azure Portal,在新创建的VM Scale Set中找到Public IP。然后用远程桌面连接public ip:50000,在我的case中连接139.219.232.229:50000。端口50000表示第一个Instance,50001是第二个instance,以此类推。。。

注:连不上的话,不要着急,有可能你的VM Scale Set正在updating,等几分钟后再连。或者连一下50001试试。

连上后,打开C盘,可以看到有一个新建的Txt文件已经存在了。Happy Ending。。。

在Azure China用自定义镜像创建Azure VM Scale Set的更多相关文章

  1. 使用 Azure CLI 2.0 从自定义磁盘创建 Linux VM

    本文说明如何在 Azure 中上传自定义的虚拟硬盘 (VHD) 或复制现有 VHD,并从自定义磁盘创建 Linux 虚拟机 (VM). 可以根据要求安装并配置 Linux 分发版,并使用该 VHD 快 ...

  2. 云计算之路-试用Azure:制作虚拟机自定义镜像

    虚拟机自定义镜像(Image)是一个很有用的功能,可以在一台虚拟机上配置好基本的系统环境,然后做个镜像,以后创建虚拟机直接从这个镜像创建,会省掉很多重复的配置工作. 阿里云与UCloud都有这个功能, ...

  3. Azure China (4) 管理Azure China Storage Account

    <Windows Azure Platform 系列文章目录> Update 2015-05-10 强烈建议使用AzCopy工具,AzCopy命令行工具,是经过优化的.高性能Azure S ...

  4. Azure China (10) 使用Azure China SAS Token

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 注意:本文介绍的是Azure China Storage Priva ...

  5. Windows Azure HandBook (2) Azure China提供的服务

    <Windows Azure Platform 系列文章目录> 对于传统的自建数据中心,从底层的Network,Storage,Servers,Virtualization,中间层的OS, ...

  6. Azure China (2) Azure China管理界面初探

    <Windows Azure Platform 系列文章目录> 首先是Q&A时间 1.我在Azure Global拥有测试账号或者免费的MSDN订阅账号,这个账号可以在国内Azur ...

  7. Azure China

    Azure China   Azure China (2) Azure China管理界面初探 摘要: <Windows Azure Platform 系列文章目录> 首先是Q&A ...

  8. 使用VS code 创建 Azure Functions,从blob触发,解析,发送至Service Bus

    更多内容,关注公众号:来学云计算 场景: 某设备定时于每天23:00左右将一天的运行日志.devicelogtxt上传到Azure Blob,期待Blob文件上传后, 自动通过Azure Functi ...

  9. 阿里云自定义镜像可以免费保存,ECS实例到期后自定义镜像手动快照不会被删除

    阿里云自定义镜像可以免费保存,ECS实例到期后自定义镜像手动快照不会被删除 4. ECS 实例释放后,自定义镜像是否还存在? 存在. 5. ECS 实例释放后,快照是否还存在? 保留手动快照,清除自动 ...

随机推荐

  1. org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6709758.html Android Studio导入项目报错: org.gradle.api.inter ...

  2. JS比较思维模型

    在这里,要分享的JS中两种思维方式: 1)面向对象风格示例: function Foo(who){ this.me = who; } Foo.prototype.identify = function ...

  3. bootstrap快速入门笔记(九)-响应式工具

    一,可用的类   超小屏幕手机 (<768px) 小屏幕平板 (≥768px) 中等屏幕桌面 (≥992px) 大屏幕桌面 (≥1200px) .visible-xs-* 可见 隐藏 隐藏 隐藏 ...

  4. jquery中is()函数

    is(expr)函数判断当前Jquery对象所匹配的元素是否存在.只要其中一种符合,就返回 true,否则返回 false. 如果 expr是个字符串,既视为Jquery的选择器,用于表示选择的元素. ...

  5. FrameBuffer系列 之 简单编程

    一.Linux的帧缓冲设备 帧缓冲(framebuffer)是 Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作.这种操作是抽象的 ...

  6. python编程总结

    1.signal.signal(signal.SIGCHLD,signal.SIG_IGN) 这句话的作用是 防止产生僵尸进程.详细解释看 http://www.cnblogs.com/Anker/p ...

  7. 查询表达式和LINQ to Objects

    查询表达式实际上是由编译器“预处理”为“普通”的C#代码,接着以完全普通的方式进行编译.这种巧妙的发式将查询集合到了语言中,而无须把语义改得乱七八糟 LINQ的介绍 LINQ中的基础概念 降低两种数据 ...

  8. iOS-SQLite(FMDB)

    在已经存在的表中,添加字段,更新表结构 /** Test to see if particular column exists for particular table in database @pa ...

  9. java.util.zip.ZipException: invalid LOC header (bad signature)

    Debug on Server(Tomcat 9) 遇到这个exception: SEVERE: A child container failed during startjava.util.conc ...

  10. shapeless官方指南翻译总结

    今天抽空把之前翻译的<The Type Astronaut's Guide to Shapeless>一书放到了Gitbook上,将其开源供所有人阅读并希望大家能够提出宝贵意见,地址为sh ...