Azure入门:创建第一个虚拟机

发布时间: 2023-12-14 15:51:39 阅读量: 38 订阅数: 39
# 1. 介绍:了解Azure和虚拟机基础知识 ## 1.1 什么是Azure Microsoft Azure是一种灵活的云计算平台和服务,提供了计算、存储、数据库、人工智能等各种功能,能够帮助个人和企业构建、部署和管理应用程序,通过全球范围的数据中心进行灵活的扩展和升级。 ## 1.2 什么是虚拟机 虚拟机(Virtual Machine,VM)是一种基于软件的模拟计算机系统,它能在一个物理计算机上创建出一个或多个逻辑上独立的计算机环境,用户可以在这些环境中运行不同的操作系统和应用程序。在Azure中,虚拟机是一种用于托管业务应用程序和服务的弹性计算资源。 ## 2. 准备工作:注册Azure账号和创建资源组 在开始创建虚拟机之前,我们需要先进行一些准备工作,包括注册Azure账号和创建资源组。 ### 2.1 注册Azure账号 要使用Azure的服务,我们首先需要注册一个Azure账号。请按照以下步骤进行注册: 1. 打开Azure官方网站(https://azure.microsoft.com/),并点击页面右上角的"开始免费"按钮。 2. 在弹出的页面上,选择一个适合的订阅类型(如"免费帐户"或"付费计划")。 3. 提供所需的个人信息,并创建一个新的Microsoft账号。 4. 按照指示完成注册过程。 在注册完成后,你将拥有一个Azure账号,可以使用它来访问和管理Azure的各种服务。 ### 2.2 创建资源组 资源组是Azure中用来组织和管理资源的基本单元。在创建虚拟机之前,我们需要先创建一个资源组。请按照以下步骤进行创建: 1. 登录Azure门户网站(https://portal.azure.com/)。 2. 点击左侧导航栏中的"创建资源"按钮,然后选择"资源组"。 3. 在弹出的窗口中,选择要创建资源组的订阅,然后填写资源组的基本信息,包括名称、区域等。 4. 点击"创建"按钮,等待资源组创建完成。 创建资源组完成后,我们就可以开始创建虚拟机了。 ### 3. 创建虚拟机:选择虚拟机规格和配置 在Azure中,创建虚拟机是非常简单的,首先你需要登录到Azure门户并在指定的资源组中创建新的虚拟机。接下来,我们将讨论如何选择虚拟机规格以及配置虚拟机网络和操作系统。 #### 3.1 选择虚拟机规格 Azure提供了各种各样的虚拟机规格,以满足不同的计算需求。你可以根据虚拟机的用途、处理器、内存和存储等需求来选择合适的规格。在选择虚拟机规格时,你需要考虑以下几个因素: - **虚拟机系列**:Azure提供了多种系列的虚拟机,如通用用途系列、计算优化系列、存储优化系列等,根据你的需求选择合适的系列。 - **处理器和内存**:根据你的计算需求选择虚拟机的处理器核数和内存大小,Azure提供了不同规格的虚拟机供你选择。 - **存储**:你可以选择使用Azure提供的标准存储或高级存储,也可以根据需要添加附加数据磁盘。 在Azure门户中,你可以通过“创建虚拟机”向导来浏览并选择虚拟机规格,根据你的需求进行筛选和选择合适的规格。 ```python # 示例代码:使用Azure Python SDK选择虚拟机规格的代码示例 from azure.identity import DefaultAzureCredential from azure.mgmt.compute import ComputeManagementClient credential = DefaultAzureCredential() subscription_id = 'your-subscription-id' resource_group_name = 'your-resource-group-name' location = 'eastus' vm_size = 'Standard_D2_v3' # 选择的虚拟机规格 compute_client = ComputeManagementClient(credential, subscription_id) available_sizes = compute_client.virtual_machines.list_available_sizes(resource_group_name, 'your-vm-name', location) for size in available_sizes: if size.name == vm_size: print("Selected VM Size: ", size.name) break ``` **代码总结:** 上面的示例代码演示了如何使用Azure Python SDK来列出特定位置上可用的虚拟机规格,并选择指定的虚拟机规格。 **结果说明:** 运行以上代码,会输出所选择的虚拟机规格名称。 #### 3.2 配置虚拟机网络 在创建虚拟机时,你需要配置虚拟网络以便虚拟机能够与其他资源通信,并且保证安全性。Azure提供了虚拟网络、子网、网络安全组(NSG)等功能来帮助你进行网络配置。 - **虚拟网络**:在创建虚拟机时,你可以选择现有的虚拟网络,或者创建一个新的虚拟网络。 - **子网**:如果你选择现有的虚拟网络,还需要选择一个子网来部署你的虚拟机。 - **网络安全组(NSG)**:网络安全组可以帮助你控制进出虚拟机的流量,限制网络访问。 下面是一个配置虚拟机网络的简单示例代码: ```java // 示例代码:使用Java SDK配置虚拟机网络的代码示例 import com.azure.identity.DefaultAzureCredential; import com.azure.management.network.Network; import com.azure.management.network.NetworkSecurityGroup; import com.azure.management.network.NetworkSecurityGroups; import com.azure.management.network.PublicIpAddress; import com.azure.management.network.Subnet; import com.azure.management.network.VirtualNetwork; import com.azure.management.network.VirtualNetworks; import com.azure.management.resources.fluentcore.arm.Region; import com.azure.management.resources.fluentcore.utils.SdkContext; import com.azure.resourcemanager.Azure; import com.azure.resourcemanager.compute.models.CachingTypes; import com.azure.resourcemanager.compute.models.Disk; import com.azure.resourcemanager.compute.models.OperatingSystemTypes; import com.azure.resourcemanager.compute.models.StorageAccountTypes; import com.azure.resourcemanager.compute.models.VirtualMachine; import com.azure.resourcemanager.compute.models.VirtualMachineSizeTypes; DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build(); Azure azure = Azure.configure().authenticate(credential).withDefaultSubscription(); Network network = azure.networks().define("MyNetwork") .withRegion(Region.US_EAST) .withNewResourceGroup("MyResourceGroup") .create(); Subnet subnet = network.update().defineSubnet("MySubnet") .withAddressPrefix("192.168.1.0/24") .attach() .apply(); NetworkSecurityGroup nsg = azure.networkSecurityGroups() .define("MyNsg") .withRegion(Region.US_EAST) .withExistingResourceGroup("MyResourceGroup") .defineRule("AllowSSH") .allowInbound() .fromAnyAddress() .fromPort(22) .toAnyAddress() .toPort(22) .withProtocol(SecurityRuleProtocol.TCP) .withPriority(100) .attach() .create(); ``` **代码总结:** 上面的示例代码演示了如何使用Azure Java SDK来创建虚拟网络、子网以及配置网络安全组(NSG)。 **结果说明:** 运行以上代码会在Azure中创建虚拟网络、子网和网络安全组,并定义允许SSH流量的安全规则。 #### 3.3 确定操作系统 在创建虚拟机时,你需要确定虚拟机的操作系统。Azure支持多种操作系统,包括Windows Server、Ubuntu、CentOS、Red Hat Enterprise Linux等。在选择操作系统时,你需要考虑到你的应用程序和工作负载的兼容性、性能需求等因素。 在Azure门户中创建虚拟机时,你可以在“基本详情”步骤中选择合适的操作系统映像,并且可以选择自定义映像或市场映像。此外,你还可以使用Azure提供的各种虚拟机扩展来实现特定的操作系统定制需求。 以上是创建虚拟机时选择虚拟机规格和配置网络的基本步骤,下一步我们将讨论如何设置虚拟机的安全性和管理选项。 ### 4. 设置虚拟机:配置安全性和管理选项 在创建虚拟机之后,我们需要配置一些安全性和管理选项,以确保虚拟机的安全性和可管理性。 #### 4.1 设置虚拟机的安全组和网络安全组(NSG) Azure虚拟机的安全组和网络安全组 (NSG) 是用于控制网络流量的基本防火墙。安全组是能够在虚拟网络级别和子网级别控制网络流量的安全规则集,而 NSG 是能够控制单个网络接口的安全规则集。 下面是如何使用 Azure CLI 创建安全组和设置规则的示例: ```bash # 创建安全组 az network nsg create --resource-group MyResourceGroup --name MyNsg # 创建安全规则 az network nsg rule create --resource-group MyResourceGroup --nsg-name MyNsg --name SSH --priority 100 \ --source-address-prefix "*" --source-port-range "*" --destination-address-prefix "*" --destination-port-range 22 --access Allow --protocol Tcp --description "Allow SSH Access" ``` #### 4.2 远程连接到虚拟机 远程连接虚拟机是管理虚拟机的常见方式之一。在 Azure 中,可以通过 SSH 或 RDP 协议与虚拟机建立远程连接。下面是使用 Azure CLI 创建 SSH 连接的示例: ```bash # 获取公共 IP 地址 az network public-ip show --resource-group MyResourceGroup --name MyPublicIP --query ipAddress # 使用 SSH 远程连接 ssh azureuser@公共IP地址 ``` #### 4.3 配置监视和警报 为了及时了解虚拟机的运行情况,可以配置监视和警报。Azure 提供了 Azure Monitor 服务来帮助监视虚拟机的性能和运行状况,并设置警报规则以便在出现问题时及时通知管理员。 可以通过 Azure 门户或 Azure CLI 来配置监视和警报规则。以下是使用 Azure CLI 设置启动时间和运行状况警报的示例: ```bash # 设置启动时间警报规则 az monitor metrics alert create --resource-group MyResourceGroup --name StartStopAlert --scopes /subscriptions/<SubscriptionID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/MyVm --condition "metric=Percentage CPU > 90" --description "Start/Stop VM Alert" --evaluation-frequency 5 --window-size 15 --severity 3 --action "/subscriptions/<SubscriptionID>/resourceGroups/MyResourceGroup/providers/microsoft.insights/actiongroups/MyActionGroup" # 设置运行状况警报规则 az monitor metrics alert create --resource-group MyResourceGroup --name VMHealthAlert --scopes /subscriptions/<SubscriptionID>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/MyVm --condition "metric=Percentage CPU > 90" --description "VM Health Alert" --evaluation-frequency 15 --window-size 30 --severity 2 --action "/subscriptions/<SubscriptionID>/resourceGroups/MyResourceGroup/providers/microsoft.insights/actiongroups/MyActionGroup" ``` 以上是设置虚拟机安全组、远程连接及监视警报的一些基本操作示例。根据具体需求,还可以进一步配置虚拟机的安全性和管理选项。 ## 5. 启动和连接虚拟机:远程连接虚拟机并进行操作 在完成虚拟机的创建后,我们可以通过远程连接来启动虚拟机并进行操作。本章节将介绍如何启动虚拟机、远程连接到虚拟机以及进行常见操作,如上传文件和执行命令等。 ### 5.1 启动虚拟机 1. 打开Azure门户并登录到您的账号。 2. 转到虚拟机资源的页面。 3. 选择要启动的虚拟机。 4. 在顶部选项栏中,点击“启动”按钮。 ### 5.2 远程连接到虚拟机 当虚拟机启动后,我们可以通过远程连接工具来连接到虚拟机。 #### 远程连接到Windows虚拟机 对于运行Windows操作系统的虚拟机,可以使用远程桌面协议(RDP)来进行连接。以下是连接到Windows虚拟机的步骤: 1. 打开远程桌面连接软件(如Windows自带的“远程桌面连接”工具)。 2. 输入虚拟机的公共IP地址或主机名。 3. 点击“连接”按钮。 4. 在弹出的登录对话框中,输入虚拟机的用户名和密码。 5. 点击“确定”按钮。 #### 远程连接到Linux虚拟机 对于运行Linux操作系统的虚拟机,可以使用SSH协议来进行连接。以下是连接到Linux虚拟机的步骤: 1. 打开SSH客户端软件(如Windows上的PuTTY)。 2. 输入虚拟机的公共IP地址或主机名。 3. 设置连接端口(默认情况下,SSH使用22端口)。 4. 点击“连接”按钮。 5. 在弹出的登录对话框中,输入虚拟机的用户名和密码。 6. 点击“确定”按钮。 ### 5.3 进行常见操作,如上传文件、执行命令等 一旦成功连接到虚拟机,您可以进行各种常见操作。 #### 上传文件到虚拟机 要将文件上传到虚拟机,可以使用SCP(Secure Copy)命令或工具。以下是使用SCP命令上传文件的示例(以Linux虚拟机为例): ```bash scp /path/to/local/file username@virtual-machine-ip:/path/to/remote/directory ``` #### 执行命令 在虚拟机上执行命令的方式取决于虚拟机的操作系统。以下是一些常见操作系统的命令示例: - 在Windows上执行命令: ```bash dir # 查看当前目录内容 ipconfig # 查看网络配置信息 ``` - 在Linux上执行命令: ```bash ls # 查看当前目录内容 ifconfig # 查看网络配置信息 ``` 请根据虚拟机的操作系统和您的需求,执行适当的命令。 在本章节中,我们了解了如何启动虚拟机,并使用远程连接工具连接到虚拟机。我们还介绍了如何上传文件到虚拟机和在虚拟机上执行命令。这些基本操作将帮助您在使用Azure虚拟机时进行必要的操作和管理。 ### 6. 关闭和管理虚拟机:保存资源和降低成本 在使用Azure虚拟机时,及时关闭和管理虚拟机是非常重要的,可以帮助我们节约成本并保护资源。本章将介绍如何关闭和管理虚拟机。 #### 6.1 关闭虚拟机 在不需要虚拟机时,可以将其关闭,以节约成本并释放资源。以下是如何关闭虚拟机的示例代码(使用Python SDK): ```python from azure.identity import DefaultAzureCredential from azure.mgmt.compute import ComputeManagementClient from azure.mgmt.compute.models import InstanceViewStatus # 使用默认凭据进行身份验证 credentials = DefaultAzureCredential() # 设置订阅ID和资源组名称 subscription_id = 'your-subscription-id' resource_group_name = 'your-resource-group-name' vm_name = 'your-vm-name' # 实例化计算管理客户端 compute_client = ComputeManagementClient(credentials, subscription_id) # 关闭虚拟机 async_vm_stop = compute_client.virtual_machines.begin_power_off(resource_group_name, vm_name) async_vm_stop.result() print("虚拟机已关闭") ``` 代码说明:此代码使用Azure Python SDK,通过身份验证后,找到要关闭的虚拟机并执行关闭操作。 #### 6.2 管理虚拟机资源 除了关闭虚拟机外,还可以通过管理虚拟机资源来降低成本。例如,可以将虚拟机从高性能规格调整为低性能规格,以减少费用。以下是一个调整虚拟机规格的示例(使用Azure CLI): ```shell az vm resize --resource-group your-resource-group-name --name your-vm-name --size Standard_DS1_v2 ``` 代码说明:通过使用Azure CLI中的`az vm resize`命令可以将虚拟机的规格调整为`Standard_DS1_v2`,从而降低成本。 #### 6.3 调整虚拟机规格来降低成本 在实际使用中,根据实际需求定期评估和调整虚拟机规格是非常重要的,以便最大限度地降低成本并保障资源的有效利用。
corwn 最低0.47元/天 解锁专栏
买1年送3月
点击查看下一篇
profit 百万级 高质量VIP文章无限畅学
profit 千万级 优质资源任意下载
profit C知道 免费提问 ( 生成式Al产品 )

相关推荐

Davider_Wu

资深技术专家
13年毕业于湖南大学计算机硕士,资深技术专家,拥有丰富的工作经验和专业技能。曾在多家知名互联网公司担任云计算和服务器应用方面的技术负责人。
专栏简介
该专栏是关于Microsoft Azure的,其包含了广泛的文章标题,涵盖了Azure的各个方面。从基本概念和架构到具体的实践指南,从创建虚拟机到数据存储和网络构建,从数据库服务到容器管理,从安全保护到监控和自动化,再到机器学习和人工智能的应用,再到无服务器架构、区块链、物联网等等。同时,专栏还涵盖了身份验证、边缘计算、私有云、大数据分析以及解决方案架构等重要内容。无论是对初学者还是对有经验的开发者,这里都提供了丰富的知识和实践指导,帮助读者深入理解和应用Azure。
最低0.47元/天 解锁专栏
买1年送3月
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
C知道 免费提问 ( 生成式Al产品 )

最新推荐

【PCL2错误快速诊断】:3步法迅速定位并解决打印难题

![【PCL2错误快速诊断】:3步法迅速定位并解决打印难题](https://i0.hdslb.com/bfs/article/f007394345c576666841154f55500168860ce441.png) # 摘要 本文深入探讨了PCL2错误的成因、诊断、预防和解决策略。首先对PCL2错误进行概述,继而分析PCL2语言的工作原理及常见错误类型,并探讨了诊断工具与方法论。随后,提出了基于3步法的快速诊断实践以及多个实际案例的分析,展示了如何高效定位和解决PCL2错误。第四章详细讨论了预防和优化策略,包括常规预防措施、性能优化技巧以及教育与培训。最后,介绍了PCL2错误解决后的后续

性能倍增术:5个CMOS工艺优化技巧彻底提升VLSI设计

![性能倍增术:5个CMOS工艺优化技巧彻底提升VLSI设计](https://ai2-s2-public.s3.amazonaws.com/figures/2017-08-08/06ff5d16094d4b3e4a632727c4295aa02699434b/4-Figure1-1.png) # 摘要 本文详细介绍了CMOS工艺在VLSI设计中的基础原理、性能指标及其优化策略。首先,探讨了CMOS工艺性能的关键指标,例如速度与功耗平衡、可靠性与工艺稳定性,以及工艺参数如门长、阈值电压、晶体管尺寸、离子注入与掺杂控制对性能的影响。接着,深入分析了电源分布网络优化、互连延迟与信号完整性的处理方

数据库范式全解析:从第一范式到第三范式的实用设计原则

![数据库范式全解析:从第一范式到第三范式的实用设计原则](https://img-blog.csdnimg.cn/20190425203043741.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzQxMTQ0Nzcz,size_16,color_FFFFFF,t_70) # 摘要 数据库范式是数据库设计中的核心概念,对于确保数据的结构合理性和操作的高效性至关重要。本文深入探讨了第一范式(1NF)、第二范式(2NF)

【编程视角解读】:如何让软件智能读取和应用EDID信息

![【编程视角解读】:如何让软件智能读取和应用EDID信息](https://opengraph.githubassets.com/3fd0ea2911b99bf9fca113973ea0a62beafe32d7f14d3f86568d4f5962cdcbe5/walterlv/EDID) # 摘要 EDID(Extended Display Identification Data)信息是显示设备与计算机系统之间通信的关键数据,包含了显示器的详细配置信息。本文深入探讨了EDID信息的解读及其在软件应用中的背景与结构,解析了EDID数据格式基础和软件解析方法,同时通过案例研究展示了软件实现的具

CM530变频器故障处理专家课:确保自动化设备稳定运行

![CM530变频器故障处理专家课:确保自动化设备稳定运行](https://rsonline.cn/euro/img/home/hero/2022-11/APAC/hero2sc.jpg) # 摘要 本文详细介绍了CM530变频器的基础知识、工作原理、常见故障诊断、维修工具与技术、维护保养策略以及软件配置与优化方法。通过对故障类型、原因分析和处理案例的研究,文章阐述了变频器的维修过程和安全措施。同时,本文也讨论了维护保养的重要性,并提出了定期检查和故障预警系统建立的方案。此外,文章还探讨了CM530变频器软件配置流程和功能优化技巧,并通过案例展示其实际应用效果。最后,分析了变频器升级和改造

Oasis_montaj高级技巧揭秘:让专业功能为你所用

# 摘要 本文全面介绍了Oasis_montaj软件的应用和高级技巧,覆盖数据处理、视觉化、3D建模以及特定行业的高级应用。文中详细阐述了数据导入导出管理、高级数据分析工具、批量处理工作流的构建与自动化实现,以及3D建模与数据集成的技术。特别对Oasis_montaj在石油与天然气、环境科学与工程、矿业及其他行业的应用实例进行了深入分析。最后,本文探讨了Oasis_montaj的自定义脚本、插件开发、系统集成和数据交换协议等高级定制与扩展开发方面的内容,以及面向未来的软件优化与性能提升策略。 # 关键字 Oasis_montaj;数据处理;视觉化技术;3D建模;自动化工作流;系统集成 参考

三菱PLC浮点数运算优化:10个技巧提升性能

![三菱PLC浮点数运算优化:10个技巧提升性能](http://gss0.baidu.com/9vo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/d52a2834349b033bb2e2ac8a12ce36d3d539bd7c.jpg) # 摘要 三菱PLC在工业自动化领域广泛运用,特别是在需要浮点数运算的应用中,其性能和优化策略至关重要。本文首先介绍了三菱PLC与浮点数运算的基础知识,然后分析了浮点数运算面临的性能挑战,并探讨了优化策略和理论基础。本文重点探讨了通过编程技巧、数据对齐、访问优化以及硬件加速等方法提升浮点运算性能的实用技术。通过实例分析,

CCPC-Online-2023:数据结构题目的制胜策略,一次掌握所有解题技巧

![CCPC-Online-2023:数据结构题目的制胜策略,一次掌握所有解题技巧](https://www.cppdeveloper.com/wp-content/uploads/2018/02/C_optimization_19.png) # 摘要 CCPC-Online-2023是一项面向计算机专业学生的编程竞赛,旨在考查参赛者对数据结构理论及其实际应用的掌握程度。本文首先概述了竞赛的背景和目标,然后深入探讨了多种数据结构的理论基础和在竞赛中的应用,如栈与队列、树结构和图算法。第三章着重介绍了数据结构题目的实战技巧,包括排序与搜索算法、动态规划以及数据结构的优化方法。第四章则着眼于高级