Skip to main content

使用Azure Cli创建和管理Linux虚拟机

分类:  Azure虚拟机 标签:  #虚拟机 #Linux #Azure #基础 发布于: 2023-05-27 20:53:28

本教程使用Azure CLi进行虚拟机的创建和管理,需要您在本地安装和设置好Azure CLi, 关于如何安装和设置Azure Cli, 您可以参考文档:

下面我们开始使用Azure CLi创建Linux虚拟机

创建资源组

首先设置好Azure CLi

az cloud set --name AzureChinaCloud
az login
az account set --subscription <your subscription>

使用上述命令将Azure环境设为Azure China, 同时登录到Azure China, 然后设置当前的订阅为您的订阅。

创建资源组:

az group create --name myResourceGroupVM --location chinaeast

这里创建一个资源组,名字为myResourceGroupVM, 同时注意选择的区域是China East, 目前Azure China仅仅支持:

  • China east

  • China East2

  • China North

  • China North2

创建虚拟机

使用如下的命令创建基于Linux的虚拟机:

az vm create \
--resource-group myResourceGroupVM \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--admin-password <your password>

创建成功后会输出:

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

链接到虚拟机

您可以通过各种工具使用SSH链接到您刚刚创建的虚拟机上:

ssh azureuser@52.174.34.95

操作完成后,推出虚拟机:

exit

理解虚拟机镜像

Azure市场包括了很多虚拟机镜像可以用于创建虚拟机,前面的例子中我们使用了Ubuntu的镜像创建了虚拟机,我们可以使用下述的命令列出使用最多的虚拟机镜像:

az vm image list --output table

也可以查看所有的虚拟机镜像:

az vm image list --all --output table

为了过滤或者搜索,也可以使用如下的命令:

az vm image list --offer CentOS --all --output table

输出如下:

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

为了使用特定的镜像创建虚拟机,可以在--image参数里 使用Urn的模式,包括:publisher, offer, SKu以及可选的版本号,例如:

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

注意查看参数:--image OpenLogic:CentOS:6.5:latest

理解虚拟机Size

虚拟机的Size决定了虚拟机的计算能力,包括像CPU, 'GPU,内存`等等,创建虚拟机时需要根据要完成的工作选择合适的虚拟机Size, 创建完成后,如果工作负载增加,也可以调整虚拟机的Size。

虚拟机Size说明

下表分类列出虚拟机的大小和用户

类型常用大小描述
通用用途B, Dsv3, Dv3, Dsv2, Dv2, Av2, DC主要用于开发,测试以及中小型的应用和数据解决方案,这个类型CPU和内存相对较为平衡
计算优化Fsv2用户中等流量的应用,网络应用,或者批处理类型的应用 使用了更好的CPU和更高的内存
内存优化Esv3, Ev3, M, DSv2, Dv2高内寸,(High memory-to-cpu) 适合关系型数据库,中大型应用,基于内存的分析应用
存储优化Lsv2, ls磁盘高吞吐量,适合大数据,SQL,NoSQL数据库
GPUNV, NVv2, NC, NCv2, NCv3, ND特殊的虚拟机,主要为重度依赖显卡的业务应用,例如图像渲染,视频编辑等
高性能HAzure目前提供的最强大的虚拟机,拥有目前最强的CPU,以及可选的高吞吐量的网络接口

查询某个区域可以使用的虚拟机Size

az vm list-sizes --location chinaeast --output table

创建指定Size的虚拟机

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

调整虚拟机大小

虚拟机已经被部署之后,随着工作量的增大,我们还是可以通过如下的命令来调整虚拟机的大小:

显示虚拟机当前大小
az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize
列出当前虚拟机所在的集群上能够使用虚拟机的大小
az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name
调整大小

选择好合适的大小,开始调整:

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_DS4_v2

如果在该虚拟机目前所在集群中没有找到需要调整的大小,那么可以先将虚拟机deallocate, 然后调整大小, 注意deallocate之后,会重新选择集群。

az vm deallocate --resource-group myResourceGroupVM --name myVM

一旦deallocate, 就可以调整大小了

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1

然后再启动虚拟机:

az vm start --resource-group myResourceGroupVM --name myVM
查询虚拟机的状态:
az vm get-instance-view \
--name myVM \
--resource-group myResourceGroupVM \
--query instanceView.statuses[1] --output table

管理虚拟机

取得虚拟机IP地址

az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table

启动和停止虚拟机

az vm stop --resource-group myResourceGroupVM --name myVM
az vm start --resource-group myResourceGroupVM --name myVM

删除资源组

az group delete --name myResourceGroupVM --no-wait --yes