当前位置: 首页 > news >正文

36.Azure制作自定义的Windows虚拟机映像

首先按照常规的方法创建一台VM虚拟机,只是做成模板的虚拟机必须是托管磁盘

clip_image001  

然后登录进行配置

clip_image002  

在虚拟机里我安装了IIS服务并参考《Azure文件(文件共享)-NAS》的做法,我让这台IIS连接到我的Azure共享存储中,提供WEB服务

clip_image003  

接着需要对系统进行Sysprep通用化处理:Sysprep 将删除所有个人帐户信息及其他某些数据,并准备好要用作映像,哪些不会被Sysprep清理请参考:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-7/dd744581(v=ws.10)

以管理员身份打开“命令提示符”窗口。将目录切换到 %windir%\system32\sysprep,然后运行 sysprep.exe

clip_image004  

耐心等待完成,系统会自动关机

clip_image005  

虚拟机停止了,但资源并未释放

clip_image006  

接下以管理员身份运行Powershell,登录您的Azure,查看VM信息

Get-AzureRmVM

clip_image007  

首先执行如下命令来要释放资源解除分配

Stop-AzureRmVM -ResourceGroupName ServersResourceGroup -Name WEBTemp -Force

clip_image008  

然后把该虚拟机设置成通用状态

Set-AzureRmVM -ResourceGroupName ServersResourceGroup -Name WEBTemp -Generalized

clip_image009  

接下来就可以开始创建镜像模板了,首先设置一个获取虚拟机的变量

$vm = Get-AzureRmVM -Name WEBTemp -ResourceGroupName ServersResourceGroup

clip_image010  

创建镜像的配置变量

$image = New-AzureRmImageConfig -Location eastasia -SourceVirtualMachineId $vm.ID

clip_image011  

最后创建镜像,我创建镜像的名称是WEBTempOS

New-AzureRmImage -Image $image -ImageName WEBTempOS -ResourceGroupName ServersResourceGroup

clip_image012  

如果要查看所有镜像模板可以执行如下:

$images = Find-AzureRMResource -ResourceType Microsoft.Compute/images

$images.name

clip_image013  

如果要想基于这个镜像模板来创建虚拟机可以从这里进行创建

clip_image014  

创建好以后,唯独计算机管理用户的filedisk01账户以及IIS里应用程序池中AzureSharefile01标识ID(filedisk01)和站点连接为账户filedisk01的密码我手动更新了一下就好了,可以看见根据模板创建出来的虚拟机之前定义的filedisk01账户还在,IIS也都还在,应用程序池和站点都在。

clip_image015  

如果要删除镜像,比如从ServersResourceGroup资源组里删除名称为WEBTempOS的镜像模板

Remove-AzureRmImage -ImageName WEBTempOS -ResourceGroupName ServersResourceGroup

clip_image016  

其实这篇主要重点是介绍Windows系统的自定义映像如何制作,至于如何实现制作出来的映像在部署时自动配置好IIS并连接到后端的数据库或文件提供前端访问我只是起一个抛砖引玉介绍的作用,大家可以根据自己实际的业务需求来自定义真正符合您需求的完美映像哈。

相关文章:

  • apollo客户端springboot实战(四)
  • python 全栈开发,Day4
  • 概率生成函数学习笔记
  • Qt托盘程序
  • LayaAir疑难杂症之一:List渲染无法生效
  • Spring aop详解
  • 解决Linux下普通用户无法使用root连接MySQL服务
  • BZOJ4514: [Sdoi2016]数字配对(费用流)
  • Leetcode PHP题解--D10 942. DI String Match
  • Java学习笔记之ArrayList基本用法
  • 阿里巴巴2020届校招实习生内推开始啦
  • ionic3 学习记录
  • 【虾说区块链】搞懂P2P网络,再谈区块链!P2P网络概念扫盲帖
  • 三、分别用for、while、do-while、循环语句以及递归方法计算n!,并输出算式。
  • sitemap
  • [数据结构]链表的实现在PHP中
  • canvas 五子棋游戏
  • hadoop集群管理系统搭建规划说明
  • Java IO学习笔记一
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Redis的resp协议
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue2.0项目引入element-ui
  • webpack入门学习手记(二)
  • WePY 在小程序性能调优上做出的探究
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 服务器之间,相同帐号,实现免密钥登录
  • 缓存与缓冲
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 用jQuery怎么做到前后端分离
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • !!java web学习笔记(一到五)
  • #LLM入门|Prompt#3.3_存储_Memory
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (3)STL算法之搜索
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (七)理解angular中的module和injector,即依赖注入
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 设计一套高性能的弱事件机制
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • @DateTimeFormat 和 @JsonFormat 注解详解