你的第一个小型 Terraform 项目:在 AWS 上安装、配置和部署

发布: (2025年12月3日 GMT+8 02:20)
3 min read
原文: Dev.to

Source: Dev.to

Cover image for Your First Mini Terraform Project: Install, Configure, and Deploy on AWS

Terraform 是什么?

Terraform 由 HashiCorp 开发,是一种基础设施即代码(IaC)工具,用于:

  • 供应 AWS / Azure / GCP 资源
  • 自动化基础设施
  • 维护可重复、受版本控制的部署
  • 轻松销毁并重新创建资源

它使用自己的 DSL,称为 HCL(HashiCorp 配置语言)。

在本指南中,我们将:

  1. 安装 Terraform
  2. 配置 AWS 访问
  3. 创建 Terraform 项目
  4. 部署 AWS 基础设施

步骤 1 – 在 Ubuntu 上安装 Terraform

sudo apt update
sudo apt install -y wget unzip
wget https://releases.hashicorp.com/terraform/1.6.3/terraform_1.6.3_linux_amd64.zip
unzip terraform_1.6.3_linux_amd64.zip
sudo mv terraform /usr/local/bin/
terraform -v   # verify installation

步骤 2 – 安装 AWS CLI

sudo apt install -y awscli
aws --version   # verify installation

步骤 3 – 配置 AWS 凭证

aws configure

系统会提示输入:

Enter AWS Access Key ID     : 
Enter AWS Secret Access Key : 
Default region name         : ap-south-1
Default output format       : json

注意: 在 AWS 控制台 → IAM → Users → Your User → Security credentials → Access keys → Create access key 中创建或获取访问密钥。请选择与最近数据中心相匹配的区域。

步骤 4 – 创建 Terraform 项目结构

mkdir -p terraform_demo/terraform
cd terraform_demo/terraform

文件夹布局:

terraform_demo/
└── terraform/
    ├── provider.tf
    ├── main.tf
    ├── variables.tf
    ├── terraform.tfvars
    └── outputs.tf

步骤 5 – 编写 Terraform 文件

provider.tf

provider "aws" {
  region = var.region
}

variables.tf

variable "region" {}
variable "instance_type" {}
variable "key_name" {}

terraform.tfvars

region        = "ap-south-1"
instance_type = "t2.micro"
key_name      = "nagios"

main.tf

resource "aws_instance" "web" {
  ami           = "ami-0a0f1259dd1c90938"
  instance_type = var.instance_type
  key_name      = var.key_name

  tags = {
    Name = "Terraform-Web"
  }
}

寻找正确的 AMI
对于最新的 Ubuntu AMI(推荐):

aws ec2 describe-images --owners canonical \
  --filters "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-*" \
  --query 'Images[*].[ImageId,Name]' --output table

对于最新的 Amazon Linux 2 AMI:

aws ec2 describe-images --owners amazon \
  --filters "Name=name,Values=amzn2-ami-hvm-*-x86_64-gp2" \
  --query 'Images[0].ImageId' --output text

选择合适的 AMI ID 并在 main.tf 中替换相应的值。

outputs.tf

output "public_ip" {
  value = aws_instance.web.public_ip
}

步骤 6 – 初始化 Terraform

terraform init

步骤 7 – 生成执行计划

terraform plan

Terraform 将显示它计划创建的资源。

步骤 8 – 应用并创建基础设施

terraform apply

在提示时输入 yes。应用完成后,输出将显示 EC2 实例的公共 IP。


🎉 Terraform 设置完成!
您的 AWS 基础设施已通过 Terraform 自动部署。

Back to Blog

相关文章

阅读更多 »

AWS Terraform 生命周期规则

介绍 基础设施即代码(IaC)在您能够完全控制资源在更新、替换和删除过程中的行为时最为强大。Terr…

Terraform 项目:简单 EC2 + 安全组

项目结构 terraform-project/ │── main.tf │── variables.tf │── outputs.tf │── providers.tf │── terraform.tfvars │── modules/ │ └── ec2/ │ ├── main.tf │ …

在 S3 中保存 Terraform 状态

配置 S3 作为 Terraform 后端 Terraform 可以将其状态存储在 S3 存储桶中。以下是一个最小的配置示例,用于设置 S3 后端:hcl terrafor...