IaC基础设施即代码:Terraform 连接 aws S3 实现多资源管理

本文围绕Windows系统下使用Terraform在AWS亚马逊云进行资源创建展开。详细介绍了创建用户、初始化provider,以及创建S3、Dynamo DB等多种资源的步骤,还包含资源销毁操作。同时,针对Terraform初始化、验证、删除资源等过程中出现的报错,给出了原因分析和解决办法。

目录

 一、实验

1.环境

2.aws 亚马逊云创建用户

3.Windows使用Terraform 初始化 aws provider

4.Windows使用Terraform 创建S3存储资源 (对象存储)

5.Windows使用Terraform 创建Dynamo DB资源 (表格存储)

6.Windows给Terraform项目添加Backend配置

7.Windows使用Terraform 创建VPC和Subnet资源

8.Windows使用Terraform 创建SecurityGroup资源

9.Windows使用Terraform 创建Route和Gateway资源

10.Windows使用Terraform 创建EC2资源

11.Windows使用Terraform 创建ELB资源

12.销毁资源

二、问题

1.Terraform初始化报错

2.Terram验证资源报错

3.Terraform初始化失败

4.Terraform删除资源失败 (负载均衡器)

5.Terraform删除资源失败 (S3)

6.AWS 有哪些区域和可用区


 一、实验

1.环境

(1)主机

表1-1 主机

主机 系统 软件 工具 备注
jia

Windows 

Terraform 1.6.6 VS Code、 PowerShell、 Chocolatey
pipepoint Linux Terraform 1.6.6

2.aws 亚马逊云创建用户

(1)登录

用户 | IAM | Global (amazon.com)

(2)查看

IAM 

ebdd6d4f1efc49028f13a7a462cfdd0d.png

(3)创建用户 

1c76662a3bb340ebaf721a32cd7b4c93.png

2bf971a2ac0c43489836dd8253a2d975.png

74fc169490554282877d74af6dd0b4b8.png

(4)创建完成

073e124ab0cb4d85af816c91b18a8f66.png

(5)访问密钥

e777dd238c624aa18618d89945505130.png

7fb418b6196a4d1b871075f22ef695c1.png

(6)完成

e2d6583bbcdb4f4493b6d06a512d8e70.png

(7)创建组和权限

adcd6bd97140489490f06f02ddeacbef.png

(8)关联用户

928824839c3f499c84b204e2835417d4.png

(9)查看用户权限

05f8d1e976a2430788edc8ac37ffaade.png

(10)查看aws provider 示例

Terraform Registry

cb4af04b6c9947ec9cdeafcc96c4f38f.png

USE PROVIDER  示例

3a7eb0cd552e47bfb2c821c563c88807.png

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = "5.32.1"
    }
  }
}

provider "aws" {
  # Configuration options
}

Example Usage  示例

2958779de7454c67b3f85598d3f78fca.png

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

# Configure the AWS Provider
provider "aws" {
  region = "us-east-1"
}

# Create a VPC
resource "aws_vpc" "example" {
  cidr_block = "10.0.0.0/16"
}

3.Windows使用Terraform 初始化 aws provider

(1)创建项目terraform-aws

查看目录

177404709b2e454a956f5efe8a99c00b.png

(2)格式化代码

terraform fmt

359130813ef6467493cba2bae27d0aea.png

(3) 初始化

terraform init

4694b46d38d94656a697b079b3af3dcd.png

(4) 验证代码

terraform validate

867850ce26c4476197ad328bc929c9c2.png

(5)查看版本及provider

terraform -v 或 terraform --version

5bdc1aef4c114106b6b8509bb43b1047.png

4.Windows使用Terraform 创建S3存储资源 (对象存储)

(1)查看目录

1a48f496f6764ec39adb44b0e8d9f7e0.png

(2)创建主配置文件

main.tf

# Configuration options
provider "aws" {
  region     = var.region
  access_key = var.access_key
  secret_key = var.secret_key
}

resource "aws_s3_bucket" "terraform-bucket" {
  bucket = "terraform-state-devmaojing"
  acl    = "private"
  versioning {
    enabled = true
  }
}

84650da271c1435fa25158fb9fdda95f.png

(3)创建默认变量配置文件(存储IAM密钥)

terraform.tfvars

a199b28b85e54dce83dfb15255686269.png

(4)创建版本配置文件

variables.tf

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "5.32.1"
    }
  }
}

c28b26e7dda345ae9429250a9a54e2aa.png

(5) 创建变量配置文件

variables.tf

variable "access_key" {
   type        = string

}

variable "secret_key" {
   type        = string
}

variable "region" {
  type        = string
  default = "us-east-1"
}

b239161339b741849f4862f83d1b60ef.png

(5) 格式化代码

terraform fmt

b8ef53749f5247ba96c26b56426b2839.png

(6)验证代码

​​​​​​​​​​​​​​terraform validate

4e67ae28c1644651b85149e9c1e5145a.png

(7)计划与预览

 terraform plan

dc6adb15cc7f474886cd41db66061685.png

(8)申请资源

terraform apply

b4d1d84b398442f0b2dd8c6749206432.pngb4041a4515204ac6bb08ca697f171b2d.png

(9)登录AWS查看

查看S3存储桶

14be4533917d4cb7b8910102695a9233.png

5.Windows使用Terraform 创建Dynamo DB资源 (表格存储)

(1)修改主配置文件

main.tf 添加如下代码

resource "aws_dynamodb_table" "tf-state-table" {
  name           = "tf-state-tablemaojing"
  billing_mode   = "PROVISIONED"
  read_capacity  = 20
  write_capacity = 20
  hash_key       = "LockID"

  attribute {
    name = "LockID"
    type = "S"
  }
}

fbe1b78985514adeb7d87c8b6e91a7df.png

 (2) 格式化代码

terraform fmt

e085505396ea42599dcd02e8ae8254c0.png

(3)验证代码

​​​​​​​​​​​​​​terraform validate

ae23bc1a77c041698e2d0591f014d446.png

(4)计划与预览

 terraform plan

0d3384fa5e1a4763b0a0f456088c7afc.png

(5)申请资源

terraform apply

02af9f43087a446f85a3487e64fbb99a.png

(6)登录AWS查看

查看Dynamo DB

d24b3fa236034934b4a256e78c57e038.png

6.Windows给Terraform项目添加Backend配置

(1)添加输出配置文件

outputs.tf

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值