Skip to content

Terraform 安装

本篇介绍如何安装 Terraform 及其基础使用方法,包括项目结构、HCL 配置文件的书写建议、Provider 的配置方式等。

安装方式(推荐)

https://developer.hashicorp.com/terraform/install

  • macOS 安装
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
  • Windows 安装
将下载的 terraform.exe 添加到 C:\Windows\System32,或者新增环境变量也可以。

(base) λ terraform.exe -v
Terraform v1.12.2
on windows_amd64

目录结构建议

text
terraform-demo/
├── main.tf          # 主资源定义文件
├── outputs.tf       # 输出定义
└── provider.tf      # Provider 配置

Provider 配置(provider.tf)

Provider 定义 Terraform 与目标平台的交互接口

hcl
terraform {
  required_providers {

    aws = {
      source = "hashicorp/aws"
      version = "6.6.0"
    }

    alicloud = {
      source = "aliyun/alicloud"
      version = "1.255.0"
    }
  }
}

provider "aws" {
  region  = "us-west-2" # 或您需要的其他区域
  # 凭据管理 (选择一种方式)
  # 方式1: 使用 profile (推荐用于本地开发)
  # profile = "my-aws-profile"
  # 方式2: 环境变量 (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
  # 方式3: 直接写入 (不推荐用于生产,密钥会暴露)
  # access_key = "YOUR_ACCESS_KEY"
  # secret_key = "YOUR_SECRET_KEY"
  # 方式4: IAM Roles (如在 EC2 实例上运行)
}

provider "alicloud" {
  region     = "cn-hangzhou" # 或您需要的其他区域
  # 凭据管理 (选择一种方式)
  # 方式1: 环境变量 (推荐)
  # access_key = var.alicloud_access_key # 通过变量传入
  # secret_key = var.alicloud_secret_key # 通过变量传入
  # 方式2: Instance RAM Role (在阿里云 ECS 上运行时)
  # security_token = var.alicloud_security_token (如果是STS Token)
  # 方式3: 直接写入 (强烈不推荐)
  # access_key = "YOUR_ALIYUN_ACCESS_KEY"
  # secret_key = "YOUR_ALIYUN_SECRET_KEY"
}

主资源定义(main.tf)

以下是创建 AWS EC2 实例的示例:

hcl
resource "aws_instance" "web" {
  ami           = "ami-0c02fb55956c7d316"
  instance_type = "t2.micro"
  tags = {
    Name = "Terraform-Demo"
  }
}

输出资源信息(outputs.tf)

hcl
output "instance_id" {
  description = "EC2 实例 ID"
  value       = aws_instance.web.id
}

使用流程

在 Terraform 项目根目录下运行以下命令:

bash
terraform init      # 初始化 Provider 和模块
terraform plan      # 查看计划执行的更改
terraform apply     # 应用更改(按 y 确认)
terraform destroy   # 删除所有资源