自定义映像类似于应用商店映像,不同的是自定义映像的创建者是你自己。自定义映像可用于启动配置,例如预加载应用程序、应用程序配置和其他 OS 配置。

首先按照常规的方法创建一台标准A0机型的Centos7.3的虚拟机,但创建的时候需要注意,只能选择使用托管磁盘进行创建自定义虚拟机映像

32.Azure制作自定义的Liunx虚拟机映像_第1张图片  

然后登录进行配置

32.Azure制作自定义的Liunx虚拟机映像_第2张图片  

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

32.Azure制作自定义的Liunx虚拟机映像_第3张图片  

接下来我们将采用 Azure CLI创建该VM 的自定义映像,Azure CLI的下载地址:https://docs.azure.cn/zh-cn/cli/install-azure-cli-windows?view=azure-cli-latest

32.Azure制作自定义的Liunx虚拟机映像_第4张图片  

一直下一步直至安装完成

32.Azure制作自定义的Liunx虚拟机映像_第5张图片  

以管理员方式运行Powershell,执行az,可以看到Azure CLI的相关command

32.Azure制作自定义的Liunx虚拟机映像_第6张图片  

在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

32.Azure制作自定义的Liunx虚拟机映像_第7张图片  

创建虚拟机的映像,需通过以下方式准备 VM:取消源 VM 的预配,解除其分配,然后将其标记为通用化。 准备好 VM 后,可以创建映像

取消预配可通过删除特定于计算机的信息来通用化 VM。 实现此通用化后,即可从单个映像部署多个 VM。 在取消预配期间,主机名将重置为“localhost.localdomain”。 还会删除 SSH 主机密钥、名称服务器配置、根密码和缓存的 DHCP 租约

使用 SSH 连接到 VM 并运行命令以取消预配 VM。 使用 +user 参数还会删除上次预配的用户帐户以及任何关联的数据。 将示例 IP 地址替换为 VM 的公共 IP 地址

通过 SSH 连接到 VM,取消预配

sudo waagent -deprovision+user -force

32.Azure制作自定义的Liunx虚拟机映像_第8张图片  

然后关闭 SSH 会话,exit

接下来运行Azure CLI登录命令

az login

提示打开https://microsoft.com/devicelogin网页地址,输入code码进行登录

32.Azure制作自定义的Liunx虚拟机映像_第9张图片  

登录成功后会提示可以关闭IE浏览器

32.Azure制作自定义的Liunx虚拟机映像_第10张图片  

Azure CLI也就登录成功获取到我的订阅信息了

32.Azure制作自定义的Liunx虚拟机映像_第11张图片  

接下来解除分配 VM 并将其标记为通用化

az vm deallocate --resource-group ServersResourceGroup --name ASWTemp  

32.Azure制作自定义的Liunx虚拟机映像_第12张图片  

解除分配完成

32.Azure制作自定义的Liunx虚拟机映像_第13张图片  

将 VM 的状态设置为“通用化”,以便 Azure 平台知道 VM 已通用化。

az vm generalize --resource-group ServersResourceGroup --name ASWTemp  

clip_image014  

创建VM 的映像,从名为ASWTemp的虚拟机创建名为ASWTempOS的映像

az image create --resource-group ServersResourceGroup --name ASWTempOS --source ASWTemp  

32.Azure制作自定义的Liunx虚拟机映像_第14张图片  

还可以通过图形化来捕获VM映像

32.Azure制作自定义的Liunx虚拟机映像_第15张图片  

以表格格式按名称列出所有映像

az image list --resource-group ServersResourceGroup  

32.Azure制作自定义的Liunx虚拟机映像_第16张图片  

图形化也可以看到该VM映像

32.Azure制作自定义的Liunx虚拟机映像_第17张图片  

如果要想基于这个映像来创建虚拟机,从名为ASWTempOS的映像创建名为testasw的VM

可以创建SSH公钥方式的虚拟机

az vm create --resource-group ServersResourceGroup --name testasw --image ASWTempOS --admin-username zjunsen --generate-ssh-keys

32.Azure制作自定义的Liunx虚拟机映像_第18张图片  

也可以创建密码方式的虚拟机

az vm create --resource-group ServersResourceGroup --name testasw --image ASWTempOS --admin-username zjunsen --admin-password *********  

image  

还可以从图形化选择您自定义映像来创建虚拟机,选择ASWTempOS映像

32.Azure制作自定义的Liunx虚拟机映像_第19张图片  

根据这个映像创建新的虚拟机

32.Azure制作自定义的Liunx虚拟机映像_第20张图片  

创建出来的虚拟机因为是基于我之前自定义映像来的,因此里面的配置也有,创建出来自动就连接我后端的Azure文件共享提供WEB服务了

32.Azure制作自定义的Liunx虚拟机映像_第21张图片  

如果要删除映像,从ServersResourceGroup中删除名为ASWTempOS的映像

az image delete --name ASWTempOS --resource-group ServersResourceGroup  

32.Azure制作自定义的Liunx虚拟机映像_第22张图片