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

如果想要从自定义磁盘创建多个 VM,则应该从 VM 或 VHD 创建映像。 有关详细信息,请参阅使用 CLI 创建 Azure VM 的自定义映像。

可以使用两个选项:

  • 上传 VHD
  • 复制现有的 Azure VM

快速命令

Note

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

使用 az vm create 从自定义或专用的磁盘创建新 VM 时,请附加该磁盘 (--attach-os-disk),而不要指定自定义映像或 Marketplace 映像 (--image)。 以下示例使用从自定义 VHD 创建的、名为 myManagedDisk 的托管磁盘,创建名为 myVM 的 VM:

Azure CLI复制
az vm create --resource-group myResourceGroup --location chinaeast --name myVM \  --os-type linux --attach-os-disk myManagedDisk 

要求

若要完成以下步骤,需要:

  • 已准备好在 Azure 中使用的 Linux 虚拟机。 本文的准备 VM 部分介绍了如何查找有关安装 Azure Linux 代理 (waagent) 的特定于分发版的信息。要使 VM 在 Azure 中正常工作,以及要通过 SSH 连接到 VM,需要用到该代理。
  • 用于将 Azure 认可的 Linux 分发版(或参阅关于未认可分发版的信息)安装到采用 VHD 格式的虚拟磁盘的 VHD 文件。 可使用多种工具创建 VM 和 VHD:
    • 安装并配置 QEMU 或 KVM,并注意使用 VHD 作为映像格式。 如果需要,可以使用 qemu-img convert 转换映像。
    • 也可以在 Windows 10 或 Windows Server 2012/2012 R2 上使用 Hyper-V。
Note

Azure 不支持更新的 VHDX 格式。 创建 VM 时,请将 VHD 指定为映像格式。 如果需要,可以使用 qemu-img convert 或 Convert-VHD PowerShell cmdlet 将 VHDX 磁盘转换为 VHD。 此外,Azure 不支持上传动态 VHD,因此,上传之前,需要将此类磁盘转换为静态 VHD。 可以使用 Azure VHD Utilities for GO 等工具在上传到 Azure 的过程中转换动态磁盘。

  • 确保已安装了最新的 Azure CLI 2.0 并已使用 az login 登录到 Azure 帐户。

在以下示例中,请将示例参数名称替换成自己的值。 示例参数名称包括 myResourceGroupmystorageaccount 和 mydisks

准备 VM

Azure 支持各种 Linux 分发(请参阅认可的分发)。 以下文章指导用户准备 Azure 上支持的各种 Linux 分发版:

  • 基于 CentOS 的分发版
  • Debian Linux
  • Oracle Linux
  • Red Hat Enterprise Linux
  • SLES 和 openSUSE
  • Ubuntu
  • 其他 - 非认可分发版

另请参阅 Linux 安装说明,获取更多有关如何为 Azure 准备 Linux 映像的一般提示。

Note

只有在使用某个认可的分发的时候也使用 Azure 认可的分发中的 Linux 中“支持的版本”下指定的配置详细信息时,Azure 平台 SLA 才适用于运行 Linux 的 VM。

选项 1:上传 VHD

可以上传本地计算机上运行的或者从另一个云导出的自定义 VHD。 若要使用 VHD 创建新的 Azure VM,需要将 VHD 上传到存储帐户,并从该 VHD 创建托管磁盘。

创建资源组

在上传自定义磁盘和创建 VM 之前,首先需要使用 az group create 创建一个资源组。

以下示例在 chinaeast 位置创建名为 myResourceGroup 的资源组:Azure 托管磁盘概述

Azure CLI复制
az group create \ --name myResourceGroup \ --location chinaeast 

创建存储帐户

可以使用 az storage account create为自定义磁盘和 VM 创建存储帐户。

以下示例在前面创建的资源组中创建名为 mystorageaccount 的存储帐户:

Azure CLI复制
az storage account create \ --resource-group myResourceGroup \  --location chinaeast \  --name mystorageaccount \  --kind Storage \  --sku Standard_LRS 

列出存储帐户密钥

Azure 为每个存储帐户生成两个 512 位的访问密钥。 在向存储帐户进行身份验证以执行操作(例如执行写入操作)时,会使用这些访问密钥。 从此处了解有关管理对存储的访问的详细信息。 可以使用 az storage account keys list查看访问密钥。

查看创建的存储帐户的访问密钥:

Azure CLI复制
az storage account keys list \  --resource-group myResourceGroup \  --account-name mystorageaccount 

输出类似于:

Azure CLI复制
info:    Executing command storage account keys list
+ Getting storage account keys data: Name Key Permissions data:  ----  ----------------------------------------------------------------------------------------  ----------- data: key1 d4XAvZzlGAgWdvhlWfkZ9q4k9bYZkXkuPCJ15NTsQOeDeowCDAdB80r9zA/tUINApdSGQ94H9zkszYyxpe8erw== Full data: key2 Ww0T7g4UyYLaBnLYcxIOTVziGAAHvU+wpwuPvK4ZG0CDFwu/mAxS/YYvAQGHocq1w7/3HcalbnfxtFdqoXOw8g== Full info: storage account keys list command OK 

记下 key1,因为在后续步骤中需要使用它来与存储帐户交互。

创建存储容器

在存储帐户中创建用于整理磁盘的容器的方式,与创建各种目录以便有条理地整理本地文件系统的方式相同。 一个存储帐户可以包含任意数目的容器。 可以使用 az storage container create 创建容器。

以下示例创建名为 mydisks 的容器:

Azure CLI复制
az storage container create \ --account-name mystorageaccount \  --name mydisks 

上传 VHD

现在,使用 az storage blob upload上传自定义磁盘。 可以页 Blob 的形式上传和存储自定义磁盘。

指定访问密钥、在上一步中创建的容器,以及自定义磁盘在本地计算机上的路径:

Azure CLI复制
az storage blob upload --account-name mystorageaccount \  --account-key key1 \  --container-name mydisks \  --type page \  --file /path/to/disk/mydisk.vhd \  --name myDisk.vhd 

上传 VHD 可能需要一些时间。

创建托管磁盘

使用 az disk create 从 VHD 创建托管磁盘。 以下示例从已上传到命名存储帐户和容器的 VHD 创建名为 myManagedDisk 的托管磁盘:

Azure CLI复制
az disk create \ --resource-group myResourceGroup \ --name myManagedDisk \  --source https://mystorageaccount.blob.core.chinacloudapi.cn/mydisks/myDisk.vhd 

选项 2:复制现有 VM

也可以在 Azure 中创建自定义的 VM,并复制 OS 磁盘并将其附加到新 VM 以创建另一个副本。 这种做法在测试中不会有任何问题,但若要将现有 Azure VM 作为多个新 VM 的模型,则必须改为创建映像。 有关从现有 Azure VM 创建映像的详细信息,请参阅使用 CLI 创建 Azure VM 的自定义映像

创建快照

此示例在资源组 myResourceGroup 中创建名为 myVM 的 VM 的快照,并创建名为 osDiskSnapshot 的快照。

azure-cli复制
osDiskId=$(az vm show -g myResourceGroup -n myVM --query "storageProfile.osDisk.managedDisk.id" -o tsv) az snapshot create \  -g myResourceGroup \  --source "$osDiskId" \  --name osDiskSnapshot 

创建托管磁盘

从快照创建新的托管磁盘。

获取快照的 ID。 在此示例中,快照名为 osDiskSnapshot,位于 myResourceGroup 资源组中。

azure-cli复制
snapshotId=$(az snapshot show --name osDiskSnapshot --resource-group myResourceGroup --query [id] -o tsv) 

创建托管磁盘。 在此示例中,我们会在标准存储中从快照创建大小为 128GB、名为 myManagedDisk 的托管磁盘。

azure-cli复制
az disk create \--resource-group myResourceGroup \--name myManagedDisk \--sku Standard_LRS \--size-gb 128 \ --source $snapshotId 

创建 VM

现在,使用 az vm create 创建 VM,并将托管磁盘附加为 OS 磁盘 (--attach-os-disk)。 以下示例使用基于上传的 VHD 创建的托管磁盘创建名为 myNewVM 的 VM:

Azure CLI复制
az vm create \ --resource-group myResourceGroup \ --location chinaeast \  --name myNewVM \  --os-type linux \  --attach-os-disk myManagedDisk 

现在,应该可以使用凭据通过 SSH 从源 VM 连接到该 VM。

后续步骤

准备好并上传自定义虚拟磁盘之后,可以阅读有关使用 Resource Manager 和模板的详细信息。 可能还需要向新 VM 添加数据磁盘。 如果需要访问在 VM 上运行的应用程序,请务必打开端口和终结点。立即访问http://market.azure.cn

使用 Azure CLI 2.0 从自定义磁盘创建 Linux VM相关推荐

  1. 如何使用@vue/cli 3.0在npm上创建,发布和使用你自己的Vue.js组件库

    译者按: 你可能npm人家的包过成千上万次,但你是否有创建,发布和使用过自己的npm包? 原文: How to create, publish and use your own VueJS Compo ...

  2. linux 重新分区 调整,重新调整磁盘分区linux / vm的大小

    我运行 Linux客户端的VM Player,我想知道如何扩展磁盘?在VM播放器中,我提供了更多的磁盘空间,但我不确定如何将新的磁盘空间安装/扩展/连接到系统. 我的旧磁盘空间是14GB [root@ ...

  3. azure linux 配置端口,快速入门 - 在 Azure 门户中创建 Linux VM - Azure Virtual Machines | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 快速入门:在 Azur ...

  4. 使用 Azure CLI 管理 Azure 虚拟网络和 Linux 虚拟机

    Azure 虚拟机使用 Azure 网络进行内部和外部网络通信. 本教程将指导读者部署两个虚拟机,并为这些 VM 配置 Azure 网络. 本教程中的示例假设 VM 将要托管包含数据库后端的 Web ...

  5. 如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构

    若要将应用程序开发的生成和测试阶段自动化,可以使用持续集成和部署 (CI/CD) 管道. 本教程介绍如何在 Azure VM 上创建 CI/CD 管道,包括如何: 创建 Jenkins VM 安装并配 ...

  6. 在 Azure 中的 Linux VM 上创建 MongoDB、Express、AngularJS 和 Node.js (MEAN) 堆栈

    本教程介绍如何在 Azure 中的 Linux VM 上实现 MongoDB.Express.AngularJS 和 Node.js (MEAN) 堆栈. 通过创建的 MEAN 堆栈,可以在数据库中添 ...

  7. Linux移动光标指令hkjl,使用 HPC Pack 在 Linux VM 上執行 OpenFOAM - Azure Virtual Machines | Microsoft Docs...

    在 Azure 中的 Linux RDMA 叢集以 Microsoft HPC Pack 執行 OpenFoam 07/22/2016 本文內容 重要 傳統 Vm 將于2023年3月1日淘汰. 如果您 ...

  8. 【Microsoft Azure 的1024种玩法】二十七. Azure Virtual Desktop虚拟桌面之快速创建配置(一)

    [简介] Azure 虚拟桌面是在云中运行的桌面和应用虚拟化服务,我们可以通过Azure 的虚拟桌面设置多会话 Windows 11 或 Windows 10操作系统的 部署,使整个 Windows ...

  9. 静默安装Azure CLI

    Azure的CLI目前已经是基于Python的2.0版本.其信息在下面的链接可以找到: https://github.com/Azure/azure-cli 其安装方法可以根据网站上描述的命令实现: ...

最新文章

  1. IOS引导页拨动4张图片最后一张停三秒进入主页,页面推送
  2. 什么是序列化?python pickle模块
  3. Linux系统运维成长记
  4. linux中top和ps的内存区别,linux - top与ps间的区别
  5. IPLATUI----Grid校验
  6. 为什么java.lang包下的类不需要手动导入
  7. mac上设置新版chrome浏览器跨域
  8. ts视频下载 准备下载视频的你确定不进来看看吗
  9. 基于排序变换混沌置乱算法的图像加密系统
  10. OS学习笔记-6(清华大学慕课) 非连续内存分配管理
  11. vue js监听浏览器tab页切换
  12. 文献阅读(77)稀疏跳零结构(1)
  13. 计算机专业会学linux编程吗,计算机专业学编程,ubuntu与deepin和centos相比,哪款系统更合适...
  14. Linux下软件逆向工程的介绍(一)
  15. 【vue2】vue2.0重复点击路由会报错
  16. python3.7安装scrapy_Python3.7下scrapy框架的安装
  17. android 随机文字,按键精灵安卓随机输入预设文字内容
  18. 在Github上搭建自己的博客(Windows平台)
  19. SpaceX完成第三次“拼车发射”任务 送105颗微型卫星入轨
  20. 国足国乒竟殊途同归?国家队和联赛流行“连坐”

热门文章

  1. 基于JavaWeb实现网上花店商城系统
  2. ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决办法
  3. iOS:极光推送控制器跳转
  4. DW php创建站点
  5. 勒索软件出新招,小心你的隐私和財产安全!
  6. ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引
  7. 【Nginx】epoll事件驱动模块
  8. 两台路由器之间建立邻接关系的过程即报文信息交换过程
  9. 美妙的模电2013/4/18
  10. MarkDown需要掌握的几个基本语法