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

Terraform 是什么?
Terraform 由 HashiCorp 开发,是一种基础设施即代码(IaC)工具,用于:
- 供应 AWS / Azure / GCP 资源
- 自动化基础设施
- 维护可重复、受版本控制的部署
- 轻松销毁并重新创建资源
它使用自己的 DSL,称为 HCL(HashiCorp 配置语言)。
在本指南中,我们将:
- 安装 Terraform
- 配置 AWS 访问
- 创建 Terraform 项目
- 部署 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 自动部署。