博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 Azure CLI 2.0 从自定义磁盘创建 Linux VM
阅读量:6839 次
发布时间:2019-06-26

本文共 4541 字,大约阅读时间需要 15 分钟。

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

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

可以使用两个选项:

快速命令

Note

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

使用  从自定义或专用的磁盘创建新 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 虚拟机。 本文的 部分介绍了如何查找有关安装 Azure Linux 代理 (waagent) 的特定于分发版的信息。要使 VM 在 Azure 中正常工作,以及要通过 SSH 连接到 VM,需要用到该代理。
  • 用于将 (或参阅)安装到采用 VHD 格式的虚拟磁盘的 VHD 文件。 可使用多种工具创建 VM 和 VHD:
    • 安装并配置  或 ,并注意使用 VHD 作为映像格式。 如果需要,可以使用 qemu-img convert 。
    • 也可以在  或  上使用 Hyper-V。
Note

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

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

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

 

准备 VM

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

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

Note

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

选项 1:上传 VHD

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

创建资源组

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

以下示例在 chinaeast 位置创建名为 myResourceGroup 的资源组:

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

创建存储帐户

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

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

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

列出存储帐户密钥

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

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

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,因为在后续步骤中需要使用它来与存储帐户交互。

创建存储容器

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

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

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

上传 VHD

现在,使用 上传自定义磁盘。 可以页 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 可能需要一些时间。

创建托管磁盘

使用  从 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 创建映像的详细信息,请参阅

创建快照

此示例在资源组 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

现在,使用  创建 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。

后续步骤

准备好并上传自定义虚拟磁盘之后,可以阅读有关的详细信息。 可能还需要向新 VM 。 如果需要访问在 VM 上运行的应用程序,请务必。立即访问http://market.azure.cn

转载地址:http://kfzul.baihongyu.com/

你可能感兴趣的文章
Macaca入门篇(iOS)
查看>>
甲骨文宣布开源 GraphPipe,一种机器学习模型的新标准
查看>>
使用Eclipse开发Java应用并部署到SAP云平台SCP上去
查看>>
区块链:重新定义世界,崛起于草根的“颠覆性”技术
查看>>
为保证太空超级计算机可长期使用,惠普宣布已成功为其加电
查看>>
SqlMap 初尝试
查看>>
Python学习笔记-邮件模块SMTP
查看>>
限制优化时间和事件数的最佳方法
查看>>
金州勇士队采用可眼动追踪VR头显,检测球员的伤势情况
查看>>
Oracle 10g bigfile表空间、smallfile 表空间
查看>>
City of Angels
查看>>
React之配置组件的 props(两个实例)
查看>>
无线网络安全相关
查看>>
mybatis动态调用表名和字段名
查看>>
http与www服务基础概念详解
查看>>
Kerberos简介
查看>>
js鼠标提示
查看>>
Linux命令(1):cd命令
查看>>
Netty In Action中文版 - 第十二章:SPDY
查看>>
tcp/ip 11种状态
查看>>