操纵 Terraform 创建 Azure 虚拟机
发布时间:2023-03-06 13:43:43 所属栏目:云计算 来源:
导读:之前写过一篇 使用 Terraform 部署 Proxmox 虚拟机,那是一台 Core i7-8700 + 64G 的 Homelab 上搭建的虚拟机环境,这也是我一直以来的实验环境。直至去年加入微软 MVP 拿到了 Azure 的 credit,在需要资源较多或者拉
|
之前写过一篇 使用 Terraform 部署 Proxmox 虚拟机,那是一台 Core i7-8700 + 64G 的 Homelab 上搭建的虚拟机环境,这也是我一直以来的实验环境。直至去年加入微软 MVP 拿到了 Azure 的 credit,在需要资源较多或者拉取镜像频繁的情况下我也会选择使用 Azure 的虚拟机,尤其是最近经常在多集群的环境做测试。 在 Azure 上创建虚拟机,我也从一开始的 Web 页面专项 CLI,再到现在因为需要复杂配置时的 Terraform。这篇文章就分享下如何使用 Terraform 配置 Azure 虚拟机的创建。 Terraform[1] 是一个基础设施即代码的软件工具。使用 Terraform 可以通过编写代码来描述基础设施(包括虚拟机、负载均衡器、数据库等云和本地资源)的期望状态,安全灵活高效地构建、更改和版本化云和本地资源。 前置条件 在开始之前,确保已经具备如下条件: Azure 账户 Terraform CLI[2] Azure CLI[3] 认证 既然要做自动化,第一步就要解决认证的问题,毕竟每次都进行手工认证是不现实的,不符合懒人的特征。 Terraform 的 Azure Provider[4] 支持 5 种认证方式[5]。由于我只在本地使用,故本文是通过 Azure CLI 的方式[6] 进行认证。 复制 az login --tenant xxxx 1. 执行命令后会自动跳转到浏览器,完成认证流程。 认证成功后,可通过命令查看账户信息。 复制 az account show { "environmentName": "AzureCloud", "homeTenantId": "00000000-0000-0000-0000-000000000000", "id": "00000000-0000-0000-0000-000000000000", "isDefault": true, "managedByTenants": [], "name": "Microsoft Azure 赞助", "state": "Enabled", "tenantId": "00000000-0000-0000-0000-000000000000", "user": { "type": "user" } } 如果有多个订阅,需要设置当前账户使用的订阅。 复制 az account set --subscription 00000000-0000-0000-0000-000000000000 1. 代码 将代码克隆到本地。 1. 脚本包含了两部分: resource-group:Azure 上的所有资源都是在某个资源组下创建的,在创建虚拟机之前需要先创资源组,或使用已有的资源组。在创建资源组的同时,也会创建虚拟网络和子网。 virtual-machine:顾名思义,创建虚拟机资源。 创建资源组 进入到目录 resource-group 中,先执行下面的命令来初始化 Terraform 和下载 Azure provider。 复制 terraform init 1. 在 variables.tf 文件中定义了入参:资源组名和位置。执行下面的命令可以创建资源组,也可在创建时通过参数来指定名字和位置。 执行命令检查 Terraform 代码。 复制 terraform validate 1. 执行下面的命令来应用代码。 复制 # 在 resource-group 目录中执行 terraform apply # 或者 terraform apply -var "name=demo" -var "location=eastasia" 通过 terraform state list 查看创建的资源。或者通过 terrafor show 来查看资源的详细信息。 复制 terraform state list azurerm_resource_group.demo azurerm_subnet.demo azurerm_virtual_network.demo 创建虚拟机 进入到目录 virtual-machine 目录,依然是先运行命令进行初始化。 复制 terraform init 1. 创建虚拟机的参数就会多一些,具体参数定义可以查看 variables.tf,通过 terraform.tfvars 文件可以设置参数值,这里 需要指定使用的订阅 ID。 执行代码和参数检查。 复制 terraform validate 1. 执行命令来创建虚拟机。 复制 # 在 virtual-machine 目录中执行 terraform apply 比如将虚拟机的数量 vm_count 设置为 3,执行完上面的命令之后查看资源。 复制 terraform state list azurerm_linux_virtual_machine.demo[0] azurerm_linux_virtual_machine.demo[1] azurerm_linux_virtual_machine.demo[2] azurerm_network_interface.demo[0] azurerm_network_interface.demo[1] azurerm_network_interface.demo[2] azurerm_public_ip.demo[0] azurerm_public_ip.demo[1] azurerm_public_ip.demo[2] 通过命令 terraform show 可以查看资源的详细信息,比如公网的 IP 地址等等。 (编辑:驾考网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
