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. ssh 登录进入 docker container

    1.Container安装ssh服务,博主的linux是centos ① 安装ssh sudo yum install openssh-server #安装ssh服务器 service sshd st ...

  2. springcloud-07-eureka HA的高可用配置

    单机版的eureka, 运行时间稍长, 就会在管理界面出现红色的警告, 为了消除这个警告, 可以使用eureka的高可用配置: 只需要写一个工程配置不同的配置文件, 然后启动多实例即可: 请参照单机版 ...

  3. mysql修改存储过程的权限

    直接上代码 grant execute on procedure 表名.存储过程名(eg: student.find) to '用户名'@'host'(eg: 'volumelicense'@'%') ...

  4. (技术分享) 解决 Firefox 显示“已阻止载入混合活动内容”的问题

    (摘自http://blog.aizhet.com/Windows/18415.html) 从 Firefox 18 开始,如果 HTTPS 页面中包含非加密的 HTTP 内容,浏览器会在控制台输出警 ...

  5. Java8常用新特性实践

    前言: 时下Oracle开速迭代的Java社区以即将推出Java10,但尴尬的是不少小中企业仍使用JDK7甚至JDK6开发. 从上面列出的JDK8特性中我们可以发现Java8的部分特性很明显的是从Sc ...

  6. .NET创建WebService服务简单的例子

    Web service是一个基于可编程的web的应用程序,用于开发分布式的互操作的应用程序,也是一种web服务 WebService的特性有以下几点: 1.使用XML(标准通用标记语言)来作为数据交互 ...

  7. jQuery源码分析-03构造jQuery对象-源码结构和核心函数

    3. 构造jQuery对象 3.1源码结构 先看看总体结构,再做分解: (function( window, undefined ) { var jQuery = (function() { // 构 ...

  8. 【JavaScript 从零开始】表达式和运算符(1)

    原始表达式 最简单的表达式是"原始表达式"(primary expression).JavaScript中的原始表达式包含常量或直接量.关键字和变量. // 常量或直接量 1.23 ...

  9. [HTML5] Canvas绘制简单图片

    获取Image对象,new出来 定义Image对象的src属性,参数:图片路径 定义Image对象的onload方法,调用context对象的drawImage()方法,参数:Image对象,x坐标, ...

  10. CALayer及其子类

    前言:这个系列要更新Core Animation的内容,但是CALayer是Core Animation的基础. 一 CALayer是什么? 摘自官网的一句话-Layers Provide the B ...