使用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
暂时就这样吧。
我还想随时尝试其他资源生成方法。