前言
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