Terraform基础设施即代码:云资源管理

17老师 · 2025-12-30 · 阅读约12分钟

← 返回博客列表

前言

Terraform是HashiCorp开源的IaC工具,用代码管理AWS/Azure/GCP等云基础设施,实现版本化和可重复部署。

一、安装和配置

# 安装
wget https://releases.hashicorp.com/terraform/1.7.0/terraform_1.7.0_linux_amd64.zip
unzip terraform_1.7.0_linux_amd64.zip
sudo mv terraform /usr/local/bin/

# Provider配置
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}
provider "aws" {
  region = "ap-east-1"
}

二、资源定义

# VPC和子网
resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  tags = { Name = "main-vpc" }
}

resource "aws_subnet" "public" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.1.0/24"
  map_public_ip_on_launch = true
}

# EC2实例
resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.micro"
  subnet_id     = aws_subnet.public.id
  tags = { Name = "WebServer" }
}

# 安全组
resource "aws_security_group" "web" {
  vpc_id = aws_vpc.main.id
  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

三、工作流

terraform init      # 初始化,下载Provider
terraform plan      # 预览变更
terraform apply     # 应用变更
terraform destroy   # 销毁资源
terraform state list  # 查看状态
terraform import    # 导入已有资源

四、模块化

# modules/vpc/main.tf
resource "aws_vpc" "this" {
  cidr_block = var.cidr_block
}
variable "cidr_block" {}
output "vpc_id" { value = aws_vpc.this.id }

# 使用模块
module "vpc" {
  source     = "./modules/vpc"
  cidr_block = "10.0.0.0/16"
}

总结

Terraform实现基础设施即代码。如需服务,欢迎联系17老师。

关于17老师:AI应用-数字化管理-全栈开发-网络安全全栈专家。邮箱:j.d88888888@qq.com 微信:AFIST17
上一篇
GitHub Actions CI/CD
下一篇
ELK日志系统