Azure 虚拟机提供完全可配置的灵活计算环境。 本教程介绍 Azure 虚拟机的基本部署项目,例如选择 VM 大小、选择 VM 映像和部署 VM。 你将学习如何执行以下操作:

  • 创建并连接到 VM
  • 选择并使用 VM 映像
  • 查看和使用特定 VM 大小
  • 调整 VM 的大小
  • 查看并了解 VM 状态

Note

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

如果选择在本地安装并使用 CLI,本教程要求运行 Azure CLI 2.0.4 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI 2.0

创建资源组

使用 az group create 命令创建资源组。

Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。 必须在创建虚拟机前创建资源组。 在此示例中,在“chinaeast”区域中创建了名为“myResourceGroupVM”的资源组。

Azure CLI复制
az group create --name myResourceGroupVM --location chinaeast

创建或修改 VM 时指定资源组,本教程会对此进行演示。

创建虚拟机

使用 az vm create 命令创建虚拟机。

创建虚拟机时,可使用多个选项,例如操作系统映像、磁盘大小调整和管理凭据。 在此示例中,创建了一个名为“myVM”的运行 Ubuntu Server 的虚拟机。

Azure CLI复制
az vm create --resource-group myResourceGroupVM --name myVM --image UbuntuLTS --generate-ssh-keys

创建 VM 可能需要几分钟。 创建 VM 后,Azure CLI 会输出有关 VM 的信息。 请记下 publicIpAddress,可以使用此地址访问虚拟机。

Azure CLI复制
{
"fqdns": "",
"id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "chinaeast",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "52.174.34.95",
"resourceGroup": "myResourceGroupVM"
}

连接到 VM

现在可以使用 SSH 从本地计算机连接到 VM。 将示例 IP 地址替换为上一步骤中记下的 publicIpAddress

bash复制
ssh 52.174.34.95

登录 VM 后,可以安装和配置应用程序。 完成后,可按正常方式关闭 SSH 会话:

bash复制
exit

了解 VM 映像

Azure 应用商店包括许多可用于创建 VM 的映像。 在之前的步骤中,使用 Ubuntu 映像创建了虚拟机。 在此步骤中,Azure CLI 用于在应用商店中搜索 CentOS 映像,此映像稍后将用于部署第二个虚拟机。

若要查看最常用映像的列表,请使用 az vm image list 命令。

Azure CLI复制
az vm image list --output table

命令输出返回 Azure 上最常用的 VM 映像。

bash复制
Offer          Publisher               Sku                 Urn                                                             UrnAlias             Version
------------- ---------------------- ------------------ -------------------------------------------------------------- ------------------- ---------
WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
WindowsServer MicrosoftWindowsServer 2008-R2-SP1 MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest Win2008R2SP1 latest
WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:latest UbuntuLTS latest
CentOS OpenLogic 7.3 OpenLogic:CentOS:7.3:latest CentOS latest
openSUSE-Leap SUSE 42.2 SUSE:openSUSE-Leap:42.2:latest openSUSE-Leap latest
RHEL RedHat 7.3 RedHat:RHEL:7.3:latest RHEL latest
SLES SUSE 12-SP2 SUSE:SLES:12-SP2:latest SLES latest
Debian credativ 8 credativ:Debian:8:latest Debian latest
CoreOS CoreOS Stable CoreOS:CoreOS:Stable:latest CoreOS latest

可以通过添加 --all 参数查看完整列表。 还可以按 --publisher 或 --offer 筛选映像列表。 在此示例中,已在列表中筛选出其产品与“CentOS”匹配的所有映像。

Azure CLI复制
az vm image list --offer CentOS --all --output table

部分输出:

Azure CLI复制
Offer             Publisher         Sku   Urn                                     Version
---------------- ---------------- ---- -------------------------------------- -----------
CentOS OpenLogic 6.5 OpenLogic:CentOS:6.5:6.5.201501 6.5.201501
CentOS OpenLogic 6.5 OpenLogic:CentOS:6.5:6.5.201503 6.5.201503
CentOS OpenLogic 6.5 OpenLogic:CentOS:6.5:6.5.201506 6.5.201506
CentOS OpenLogic 6.5 OpenLogic:CentOS:6.5:6.5.20150904 6.5.20150904
CentOS OpenLogic 6.5 OpenLogic:CentOS:6.5:6.5.20160309 6.5.20160309
CentOS OpenLogic 6.5 OpenLogic:CentOS:6.5:6.5.20170207 6.5.20170207

若要使用特定映像部署 VM,请记下“Urn”列中的值。 指定映像时,可将映像版本号替换为“latest”,这会选择最新的发行版。 在此示例中,--image 参数用于指定最新版本的 CentOS 6.5 映像。

Azure CLI复制
az vm create --resource-group myResourceGroupVM --name myVM2 --image OpenLogic:CentOS:6.5:latest --generate-ssh-keys

了解 VM 大小

虚拟机大小决定虚拟机可用计算资源(如 CPU、GPU 和内存)的数量。 需要根据预期的工作负载适当调整虚拟机的大小。 如果工作负荷增加,可调整现有虚拟机的大小。

VM 大小

下表将大小分类成了多个用例。

类型 大小 说明
常规用途 DSv2、Dv2、DS、D、Av2、A0-7 CPU 与内存之比均衡。 适用于开发/测试、小到中型应用程序和数据解决方案。
计算优化 Fs, F 高 CPU 与内存之比。 适用于中等流量的应用程序、网络设备和批处理。
内存优化 DSv2、DS、Dv2、D 较高的内存核心比。 适用于关系数据库、中到大型缓存和内存中分析。

查找可用的 VM 大小

若要查看在特定区域可用的 VM 大小的列表,请使用 az vm list-sizes 命令。

Azure CLI复制
az vm list-sizes --location chinaeast --output table

部分输出:

Azure CLI复制
  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------ ------------ ---------------------- --------------- ---------------- ----------------------
2 3584 Standard_DS1 1 1047552 7168
4 7168 Standard_DS2 2 1047552 14336
8 14336 Standard_DS3 4 1047552 28672
16 28672 Standard_DS4 8 1047552 57344
4 14336 Standard_DS11 2 1047552 28672
8 28672 Standard_DS12 4 1047552 57344
16 57344 Standard_DS13 8 1047552 114688
32 114688 Standard_DS14 16 1047552 229376
1 768 Standard_A0 1 1047552 20480
2 1792 Standard_A1 1 1047552 71680
4 3584 Standard_A2 2 1047552 138240
8 7168 Standard_A3 4 1047552 291840
4 14336 Standard_A5 2 1047552 138240
16 14336 Standard_A4 8 1047552 619520
8 28672 Standard_A6 4 1047552 291840
16 57344 Standard_A7 8 1047552 619520

创建具有特定大小的 VM

在前面的 VM 创建示例中未提供大小,因此会使用默认大小。 可以在创建时使用 az vm create 和 --size 参数选择 VM 大小。

Azure CLI复制
az vm create \
--resource-group myResourceGroupVM \
--name myVM3 \
--image UbuntuLTS \
--size Standard_F4s \
--generate-ssh-keys

调整 VM 的大小

部署 VM 后,可调整其大小以增加或减少资源分配。 可通过 az vm show 查看 VM 的当前大小:

Azure CLI复制
az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize

调整 VM 大小之前,请检查所需的大小在当前 Azure 群集上是否可用。 az vm list-vm-resize-options 命令返回大小列表。

Azure CLI复制
az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name

如果所需大小可用,则可从开机状态调整 VM 大小,但需在此操作期间重启 VM。 使用 az vm resize 命令执行大小调整。

Azure CLI复制
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_DS4_v2

如果所需大小在当前群集上不可用,则需解除分配 VM,然后才能执行调整大小操作。 使用 az vm deallocate 命令停止和解除分配 VM。 请注意,重新打开 VM 的电源时,可能会删除临时磁盘上的所有数据。 除非使用静态 IP 地址,否则公共 IP 地址也会更改。

Azure CLI复制
az vm deallocate --resource-group myResourceGroupVM --name myVM

解除分配后,可能会发生大小调整。

Azure CLI复制
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1

调整大小后,可以启动 VM。

Azure CLI复制
az vm start --resource-group myResourceGroupVM --name myVM

VM 电源状态

Azure VM 可能会处于多种电源状态之一。 从虚拟机监控程序的角度来看,此状态表示 VM 的当前状态。

电源状态

电源状态 说明
正在启动 指示正在启动虚拟机。
正在运行 指示虚拟机正在运行。
正在停止 指示正在停止虚拟机。
已停止 指示虚拟机已停止。 虚拟机处于停止状态时仍会产生计算费用。
正在解除分配 指示正在解除分配虚拟机。
已解除分配 指示虚拟机已从虚拟机监控程序中删除,但仍可在控制面板中使用。 处于“已解除分配”状态的虚拟机不会产生计算费用。
- 指示虚拟机的电源状态未知。

查找电源状态

若要检索特定 VM 的状态,请使用 az vm get instance-view 命令。 请确保为虚拟机和资源组指定有效的名称。

Azure CLI复制
az vm get-instance-view \
--name myVM \
--resource-group myResourceGroupVM \
--query instanceView.statuses[1] --output table

输出:

Azure CLI复制
ode                DisplayStatus    Level
------------------ --------------- -------
PowerState/running VM running Info

管理任务

在虚拟机生命周期中,可能需要运行管理任务,例如启动、停止或删除虚拟机。 此外,可能还需要创建脚本来自动执行重复或复杂的任务。 使用 Azure CLI,可从命令行或脚本运行许多常见的管理任务。

获取 IP 地址

此命令返回虚拟机的私有 IP 地址和公共 IP 地址。

Azure CLI复制
az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table

停止虚拟机

Azure CLI复制
az vm stop --resource-group myResourceGroupVM --name myVM

启动虚拟机

Azure CLI复制
az vm start --resource-group myResourceGroupVM --name myVM

删除资源组

删除资源组还会删除其包含的所有资源,例如 VM、虚拟网络和磁盘。 --no-wait 参数会使光标返回提示符处,不会等待操作完成。 --yes 参数将确认是否希望删除资源,不会显示询问是否删除的额外提示。

Azure CLI复制
az group delete --name myResourceGroupVM --no-wait --yes

后续步骤

在本教程中,你已学习 VM 创建和管理的基本知识,例如如何:

  • 创建并连接到 VM
  • 选择并使用 VM 映像
  • 查看和使用特定 VM 大小
  • 调整 VM 的大小
  • 查看并了解 VM 状态

请转到下一教程,了解 VM 磁盘。

立即访问http://market.azure.cn

使用 Azure CLI 创建和管理 Linux VM的更多相关文章

  1. 排查在 Azure 中创建、重启 Linux VM 或调整其大小时发生的分配故障

    创建 VM.重启已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配故障 ...

  2. 排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败

    创建 VM.重新启动已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配 ...

  3. 学习使用azure CLI创建linux环境

    学习使用azure CLI创建linux环境 选用了容器的方法来登录 docker run -it microsoft/azure-cli 进入交互界面后登录到我的订阅 azure login -e ...

  4. 使用Azure CLI创建Linux虚拟机

    Azure提供了三种方式创建虚拟机,分别是Azure CLI.Azure PowerShell和Azure门户.本文介绍使用Azure CLI来创建Linux虚拟机. 使用Azure CLI创建Lin ...

  5. 使用 Azure CLI 创建 Linux 虚拟机

    Azure CLI 用于从命令行或脚本创建和管理 Azure 资源. 本指南详细介绍了如何使用 Azure CLI 部署运行 Ubuntu 服务器的虚拟机. 服务器部署以后,将创建 SSH 连接,并且 ...

  6. 在Global Azure上用Azure CLI创建ARM的VM和面向公网的负载均衡

    在Global的Azure上,新的Portal和ARM已经正式发布.将来传统的portal和ASM将逐渐淡出. China Azure将在今年下半年推出新的Portal管理界面和ARM功能(即IaaS ...

  7. 使用 Azure PowerShell 模块创建和管理 Windows VM

    Azure 虚拟机提供完全可配置的灵活计算环境. 本教程介绍 Azure 虚拟机的基本部署项目,例如选择 VM 大小.选择 VM 映像和部署 VM. 你将学习如何执行以下操作: 创建并连接到 VM 选 ...

  8. 使用 Azure CLI 创建 Windows 虚拟机

    Azure CLI 用于从命令行或脚本创建和管理 Azure 资源. 本指南详细介绍如何使用 Azure CLI 部署运行 Windows Server 2016 的虚拟机. 部署完成后,我们连接到服 ...

  9. 使用 Azure CLI 创建虚拟机

    使用 az vm create 命令创建虚拟机. 创建虚拟机时,可使用多个选项,例如操作系统映像.磁盘大小调整和管理凭据. 在此示例中,创建了一个名为“myVM”的运行 Ubuntu Server 的 ...

随机推荐

  1. php 按照二位数组中某个指定的字段进行排序

    /** * 按照二维数组中某个指定的某个字段进行排序 * @param $array 需要被排序的数组 * @param $flag 排序的标志 1,SORT_DESC 降序 2,SORT_ASC 升 ...

  2. Android之ListView的使用技巧

    之前有总结过关于ListView的一些优化技巧,比如它的ConvertView的复用Recycler机制,使用ViewHolder来提高列表条目的findById的效率,以及宽高的设置确定值的好处,如 ...

  3. android studio生成aar包并在其他工程引用aar包

    1.aar包是android studio下打包android工程中src.res.lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件 ...

  4. js便签笔记(2)——DOM元素的特性(Attribute)和属性(Property)

    1.介绍: 上篇js便签笔记http://www.cnblogs.com/wangfupeng1988/p/3626300.html最后提到了dom元素的Attribute和Property,本文简单 ...

  5. 面试:TCP和UDP协议

    目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 ·        Source P ...

  6. 笔记四:python乱码深度剖析二

    一:学习内容 获取更改系统编码 判断字符的编码类型 文件存储和读取的编码 二:获取更改系统编码 1. 获取系统编码 import sys print sys.getdefaultencoding() ...

  7. 基于Java的简易表达式解析工具(二)

    之前简单的介绍了这个基于Java表达式解析工具,现在把代码分享给大家,希望帮助到有需要的人们,这个分享代码中依赖了一些其他的类,这些类大家可以根据自己的情况进行导入,无非就是写字符串处理工具类,日期处 ...

  8. lucene基本原理

    1.术语 lucene 在存储它的全文索引结构时,是有层次结构的,这涉及到5个层次:索引(Index):段(Segment):文档(Document):域(Field):词(Term),他们的关系如下 ...

  9. Python魔法方法之属性访问 ( __getattr__, __getattribute__, __setattr__, __delattr__ )

    通常情况下,我们在访问类或者实例对象的时候,会牵扯到一些属性访问的魔法方法,主要包括: ① __getattr__(self, name): 访问不存在的属性时调用 ② __getattribute_ ...

  10. awk统计文件中某关键词出现次数

    1.统计文件test.txt中第2列不同值出现的次数 awk '{sum[$2]+=1}END{for(i in sum)print i"\t"sum[i]}'  test.txt ...