Skip to content
Go back

Mac 下安装 Terraform 基础结构即代码工具,并添加 AWS 云服务提供商

| 0 Views Edit page

前言

AWS 的官方课程有提到这些基础结构即代码工具,恰巧部署博客评论代码 Twikoo 时也需要用到,于是在这里记录下配置过程。

关于 Terraform 的介绍:什么是 Terraform?
一言以蔽之,它可以让你通过写代码和配置来部署云服务提供商的资源,你也可以直接拷贝开源项目推荐的云服务部署模板,这对自动化和迁移来说极为便利。


方案概述

AWS 官方提供的文档:开始使用 Terraform 产品

  1. 安装 Terraform(MacOS 平台)
  2. 前往 AWS 控制台获取 Access Key 和 Secret Key
  3. 配置 AWS 云服务提供商
  4. 测试部署一个 VPC 网络资源

操作步骤

一、安装 Terraform(MacOS 平台)

参考:Install Terraform
我这里是 Mac,使用 brew 安装:

brew tap hashicorp/tap
brew install hashicorp/tap/terraform

如果出现了 Error: Your Command Line Tools are too outdated. 错误:

Error: Your Command Line Tools are too outdated.
Update them from Software Update in System Settings.

则需要更新 Xcode Command Line Tools,前往 https://developer.apple.com/download/more/ 下载最新的对应自己 Xcode 版本的 Command Line Tools 安装即可,我这里是 Command Line Tools for Xcode 16
安装 Xcode Command Line Tools

确认安装成功:

terraform -v

Terraform 安装成功

二、前往 AWS 控制台获取 Access Key 和 Secret Key

AWS IAM 控制台(us-west-2 区域):IAM 控制台
这里不为根用户生产密钥,而是为 Terraform 创建一个新的用户 terraform,并给予 AdministratorAccess 权限。

1、创建新的用户

创建 terraform 用户
赋予 AdministratorAccess 权限
确认创建

2、为 terraform 用户创建 Access Key 和 Secret Key

点击用户信息,可以看到右侧有 创建访问密钥 的链接:
创建访问密钥
选择 其他
其他
之后创建访问密钥即可,密钥大概是这样的:

AKIA5J2Z5J2Z5J2Z5J2Z
cpt_jqc7TUG6mtg1avjzce*quq4BXQ8gec

三、配置 AWS 云服务提供商

参考:AWS Provider

Terraform 是以目录(项目)为单位的。我们需要新建一个项目专用的目录,之后在其中创建配置文件。在初始化后,云服务提供商的资源将会存在于这个目录下
这里新建一个目录 terraform_aws_test,并在其中创建一个 main.tf 文件,用于配置 AWS 云服务提供商:

mkdir terraform_aws_test
cd terraform_aws_test
touch main.tf

main.tf 文件内容如下,不填入真实的 Access Key 和 Secret Key 暂时也没有关系:

provider "aws" {
  region = "us-west-2"
  access_key = "my-access-key"
  secret_key = "my-secret-key"
}

之后初始化一下,Terraform 默认会记载当前目录下的配置文件:

terraform init

初始化成功
之后在目录中,可以看到下载了 AWS Provider 相关的资源:
AWS Provider 资源

四、测试部署一个 VPC 网络资源

在刚刚我们创建的目录中,稍微修改下 main.tf 文件,添加上 Access Key 和 Secret Key,然后再创建一个 VPC 网络资源:

# Configure the AWS Provider
provider "aws" {
  region = "us-west-2"
  access_key = "AKIA5J2Z5J2Z5J2Z5J2Z"
  secret_key = "cpt_jqc7TUG6mtg1avjzce*quq4BXQ8gec"
}

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

之后执行 terraform apply,会提示你输入 yes 确认,然后就会开始部署资源了:

terraform apply

显示资源创建成功
回到 AWS 控制台,可以看到我们刚刚创建的 VPC 网络资源:
AWS 控制台 VPC 列表

当然这种将 Access Key 和 Secret Key 直接写入配置文件的方式绝对不是最佳实践,更多的时候我们会使用环境变量或者其他方式来配置这些敏感信息,详细可以参考:Input Variables


参考资料:


Edit page