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

发布时间: 2023-12-14 15:51:39 阅读量: 13 订阅数: 11
# 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 调整虚拟机规格来降低成本 在实际使用中,根据实际需求定期评估和调整虚拟机规格是非常重要的,以便最大限度地降低成本并保障资源的有效利用。

相关推荐

Davider_Wu

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

最新推荐

遗传算法未来发展趋势展望与展示

![遗传算法未来发展趋势展望与展示](https://img-blog.csdnimg.cn/direct/7a0823568cfc4fb4b445bbd82b621a49.png) # 1.1 遗传算法简介 遗传算法(GA)是一种受进化论启发的优化算法,它模拟自然选择和遗传过程,以解决复杂优化问题。GA 的基本原理包括: * **种群:**一组候选解决方案,称为染色体。 * **适应度函数:**评估每个染色体的质量的函数。 * **选择:**根据适应度选择较好的染色体进行繁殖。 * **交叉:**将两个染色体的一部分交换,产生新的染色体。 * **变异:**随机改变染色体,引入多样性。

Spring WebSockets实现实时通信的技术解决方案

![Spring WebSockets实现实时通信的技术解决方案](https://img-blog.csdnimg.cn/fc20ab1f70d24591bef9991ede68c636.png) # 1. 实时通信技术概述** 实时通信技术是一种允许应用程序在用户之间进行即时双向通信的技术。它通过在客户端和服务器之间建立持久连接来实现,从而允许实时交换消息、数据和事件。实时通信技术广泛应用于各种场景,如即时消息、在线游戏、协作工具和金融交易。 # 2. Spring WebSockets基础 ### 2.1 Spring WebSockets框架简介 Spring WebSocke

adb命令实战:备份与还原应用设置及数据

![ADB命令大全](https://img-blog.csdnimg.cn/20200420145333700.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h0dDU4Mg==,size_16,color_FFFFFF,t_70) # 1. adb命令简介和安装 ### 1.1 adb命令简介 adb(Android Debug Bridge)是一个命令行工具,用于与连接到计算机的Android设备进行通信。它允许开发者调试、

Selenium与人工智能结合:图像识别自动化测试

# 1. Selenium简介** Selenium是一个用于Web应用程序自动化的开源测试框架。它支持多种编程语言,包括Java、Python、C#和Ruby。Selenium通过模拟用户交互来工作,例如单击按钮、输入文本和验证元素的存在。 Selenium提供了一系列功能,包括: * **浏览器支持:**支持所有主要浏览器,包括Chrome、Firefox、Edge和Safari。 * **语言绑定:**支持多种编程语言,使开发人员可以轻松集成Selenium到他们的项目中。 * **元素定位:**提供多种元素定位策略,包括ID、名称、CSS选择器和XPath。 * **断言:**允

TensorFlow 在大规模数据处理中的优化方案

![TensorFlow 在大规模数据处理中的优化方案](https://img-blog.csdnimg.cn/img_convert/1614e96aad3702a60c8b11c041e003f9.png) # 1. TensorFlow简介** TensorFlow是一个开源机器学习库,由谷歌开发。它提供了一系列工具和API,用于构建和训练深度学习模型。TensorFlow以其高性能、可扩展性和灵活性而闻名,使其成为大规模数据处理的理想选择。 TensorFlow使用数据流图来表示计算,其中节点表示操作,边表示数据流。这种图表示使TensorFlow能够有效地优化计算,并支持分布式

高级正则表达式技巧在日志分析与过滤中的运用

![正则表达式实战技巧](https://img-blog.csdnimg.cn/20210523194044657.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MDkzNTc1,size_16,color_FFFFFF,t_70) # 1. 高级正则表达式概述** 高级正则表达式是正则表达式标准中更高级的功能,它提供了强大的模式匹配和文本处理能力。这些功能包括分组、捕获、贪婪和懒惰匹配、回溯和性能优化。通过掌握这些高

TensorFlow 时间序列分析实践:预测与模式识别任务

![TensorFlow 时间序列分析实践:预测与模式识别任务](https://img-blog.csdnimg.cn/img_convert/4115e38b9db8ef1d7e54bab903219183.png) # 2.1 时间序列数据特性 时间序列数据是按时间顺序排列的数据点序列,具有以下特性: - **平稳性:** 时间序列数据的均值和方差在一段时间内保持相对稳定。 - **自相关性:** 时间序列中的数据点之间存在相关性,相邻数据点之间的相关性通常较高。 # 2. 时间序列预测基础 ### 2.1 时间序列数据特性 时间序列数据是指在时间轴上按时间顺序排列的数据。它具

numpy中数据安全与隐私保护探索

![numpy中数据安全与隐私保护探索](https://img-blog.csdnimg.cn/direct/b2cacadad834408fbffa4593556e43cd.png) # 1. Numpy数据安全概述** 数据安全是保护数据免受未经授权的访问、使用、披露、破坏、修改或销毁的关键。对于像Numpy这样的科学计算库来说,数据安全至关重要,因为它处理着大量的敏感数据,例如医疗记录、财务信息和研究数据。 本章概述了Numpy数据安全的概念和重要性,包括数据安全威胁、数据安全目标和Numpy数据安全最佳实践的概述。通过了解这些基础知识,我们可以为后续章节中更深入的讨论奠定基础。

ffmpeg优化与性能调优的实用技巧

![ffmpeg优化与性能调优的实用技巧](https://img-blog.csdnimg.cn/20190410174141432.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21venVzaGl4aW5fMQ==,size_16,color_FFFFFF,t_70) # 1. ffmpeg概述 ffmpeg是一个强大的多媒体框架,用于视频和音频处理。它提供了一系列命令行工具,用于转码、流式传输、编辑和分析多媒体文件。ffmpe

实现实时机器学习系统:Kafka与TensorFlow集成

![实现实时机器学习系统:Kafka与TensorFlow集成](https://img-blog.csdnimg.cn/1fbe29b1b571438595408851f1b206ee.png) # 1. 机器学习系统概述** 机器学习系统是一种能够从数据中学习并做出预测的计算机系统。它利用算法和统计模型来识别模式、做出决策并预测未来事件。机器学习系统广泛应用于各种领域,包括计算机视觉、自然语言处理和预测分析。 机器学习系统通常包括以下组件: * **数据采集和预处理:**收集和准备数据以用于训练和推理。 * **模型训练:**使用数据训练机器学习模型,使其能够识别模式和做出预测。 *