使用Mac和Azure时,使用Terraform的注意事项

因为要在Azure中使用Terraform,所以做了以下记录。

首先

Terraform代码相当依赖于版本。因此,最好参考官方的最新示例。

我因为一个原因不明的错误困扰了一段时间。

预先准备

安装Azure CLI

似乎有很多人使用已经安装了Terraform的Azure Cloud Shell的示例,但这次我们将使用CLI。
可以通过Homebrew进行安装。

brew install azure-cli

只是为了测试一下。

az --version

安装Terafform

官方介绍了以下命令。貌似也可以通过Homebrew安装。

brew tap hashicorp/tap
brew install hashicorp/tap/terraform

然而,由于Terraform版本频繁更改且具有高度依赖性,因此我将尝试通过使用名为tfenv的版本(环境)切换工具来安装。

tfenv可以通过Homebrew进行安装。

brew install tfenv

暂时先安装最新版本试试看。

tfenv install latest

可以使用 tfenv list-remote 命令来检查可用的版本列表。

确认已安装的版本。

tfenv list

在撰写时,1.3.6版本是最新的,因此指定使用它。

tfenv use 1.3.6

确认动作。

terraform --version

在VSCode中安装一个Terafform的功能扩展

由于设置描述本身是在vscode中进行的,因此我已经安装了两个插件。一个是官方的插件,另一个是用于Azure的插件。

插件应该可以在不重新启动的情况下正常启动,但格式化功能在重新启动后却无法正常运作。

    • https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform

 

    https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureterraform

操作的基础步骤是什么?

我想进行最基本的操作验证。
基本上只是跳过了原教程的一部分来尝试一下。

登录到Azure

我想在命令行中登录Azure。尽管我觉得通过搜索使用服务主体的方法可能更好,但似乎Azure CLI只能通过正常登录进行更新操作,而不是常规登录,所以我会普通地登录。

az login

创建工作场和文件

我将创建一个用于作业的目录和文件。

cd
mkdir terra-test
cd terra-test

暂时先将内容整理在main.tf文件中。

touch main.tf

撰写模板文件

常见的做法是将与提供者相关的内容提取到providers.tf中。

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 3.0.2"
    }
  }

  required_version = ">= 1.1.0"
}

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "rg" {
  name     = "myTFResourceGroup"
  location = "japaneast"
}

初始化

当您写完文件后,将进行初始化。将会下载所需的文件等。

好像当提供者的版本不一样时会出现错误。

terraform init

确认格式

在网上的文章中听说生成了一个计划,但教程感觉更像是验证格式,所以来试试看。

terraform fmt

验证

内容的验证。

terraform validate

适用

如果没有问题就应用。

terraform apply

确认状态

terraform show
terraform state list

根据需要,可以在Web门户等渠道上进行确认。

整理

如果不需要了,就用destroy来清理。

terraform destroy

暂时就这样吧。
我还想随时尝试其他资源生成方法。

bannerAds