作者:张晓辉 2023-03-03 08:10:15
云计算
虚拟化 在 Azure 上创建虚拟机,我也从一开始的 Web 页面专项 CLI,再到现在因为需要复杂配置时的 Terraform。这篇文章就分享下如何使用 Terraform 配置 Azure 虚拟机的创建。
创新互联是网站建设技术企业,为成都企业提供专业的成都做网站、成都网站建设、成都外贸网站建设,网站设计,网站制作,网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制适合企业的网站。10年品质,值得信赖!
之前写过一篇 使用 Terraform 部署 Proxmox 虚拟机,那是一台 Core i7-8700 + 64G 的 Homelab 上搭建的虚拟机环境,这也是我一直以来的实验环境。直至去年加入微软 MVP 拿到了 Azure 的 credit,在需要资源较多或者拉取镜像频繁的情况下我也会选择使用 Azure 的虚拟机,尤其是最近经常在多集群的环境做测试。
在 Azure 上创建虚拟机,我也从一开始的 Web 页面专项 CLI,再到现在因为需要复杂配置时的 Terraform。这篇文章就分享下如何使用 Terraform 配置 Azure 虚拟机的创建。
Terraform[1] 是一个基础设施即代码的软件工具。使用 Terraform 可以通过编写代码来描述基础设施(包括虚拟机、负载均衡器、数据库等云和本地资源)的期望状态,安全灵活高效地构建、更改和版本化云和本地资源。
在开始之前,确保已经具备如下条件:
既然要做自动化,第一步就要解决认证的问题,毕竟每次都进行手工认证是不现实的,不符合懒人的特征。
Terraform 的 Azure Provider[4] 支持 5 种认证方式[5]。由于我只在本地使用,故本文是通过 Azure CLI 的方式[6] 进行认证。
执行下面的命令开启认证,认证之前需访问 https://portal.azure.com/#settings/directory 获取 tenant 信息。
az login --tenant xxxx
执行命令后会自动跳转到浏览器,完成认证流程。
认证成功后,可通过命令查看账户信息。
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": {
"name": "mail@cdxwcx.com",
"type": "user"
}
}
如果有多个订阅,需要设置当前账户使用的订阅。
az account set --subscription 00000000-0000-0000-0000-000000000000
脚本已经提交在 GitHub 上,可以访问 https://github.com/addozhang/terraform-azure-sample 获取。
将代码克隆到本地。
git clone https://github.com/addozhang/terraform-azure-sample.git
脚本包含了两部分:
进入到目录 resource-group 中,先执行下面的命令来初始化 Terraform 和下载 Azure provider。
terraform init
在 variables.tf 文件中定义了入参:资源组名和位置。执行下面的命令可以创建资源组,也可在创建时通过参数来指定名字和位置。
执行命令检查 Terraform 代码。
terraform validate
执行下面的命令来应用代码。
# 在 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
创建虚拟机的参数就会多一些,具体参数定义可以查看 variables.tf,通过 terraform.tfvars 文件可以设置参数值,这里 需要指定使用的订阅 ID。
执行代码和参数检查。
terraform validate
执行命令来创建虚拟机。
# 在 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 地址等等。
[1] Terraform: https://developer.hashicorp.com/terraform/intro
[2] Terraform CLI: https://developer.hashicorp.com/terraform/downloads
[3] Azure CLI: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
[4] Azure Provider: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs
[5] 5 种认证方式: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs#authenticating-to-azure
[6] Azure CLI 的方式: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/azure_cli
分享标题:使用Terraform创建Azure虚拟机
网站链接:http://www.mswzjz.cn/qtweb/news31/512681.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能