手把手教你如何使用Terraform操作AWS

2019-08-25

Terraform 是一种安全有效地构建、更改和版本控制基础设施的工具(基础架构自动化的编排工具)。它的目标是 "Write, Plan, and create Infrastructure as Code", 基础架构即代码。Terraform 几乎可以支持所有市面上能见到的云服务。具体的说就是可以用代码来管理维护 IT 资源,把之前需要手动操作的一部分任务通过程序来自动化的完成,这样的做的结果非常明显:高效、不易出错。

Terraform 提供了对资源和提供者的灵活抽象。该模型允许表示从物理硬件、虚拟机和容器到电子邮件和 DNS 提供者的所有内容。由于这种灵活性,Terraform 可以用来解决许多不同的问题。这意味着有许多现有的工具与Terraform 的功能重叠。但是需要注意的是,Terraform 与其他系统并不相互排斥。它可以用于管理小到单个应用程序或达到整个数据中心的不同对象。

关于Terraform

Terraform以单个二进制文件的形式分布。通过解压缩并将其移动到包含在系统路径中的目录中来安装Terraform.

下载安装

Terraform的官方网站是https://www.terraform.io , 在这个网站中,可以轻松的找到的下载地址, https://www.terraform.io/downloads.html

准备环境

注:我装的是Linux版的环境,其他环境可以由自己测试。

一:首先检查一下你的python环境

默认的环境是2.7.8,这个版本太低,需要升级到3.6.8

二:安装Terraform

解压Terraform文件后Terraform是个文件,配置Terraform 环境变量

三:安装aws-cli

总结

此时环境全部准备好了,下面就开始进入Terraform的世界了。

使用Terraform 创建,删改,修改 S3 Bucket

(1).每个 Terraform 项目需要自己单独的目录空间

(2).目录下的所有 *.tf 文件都会被 Terraform 加载,在初始化 Terraform 工作空间之前必须至少要有一个 *.tf 文件。

Terraform 配置的语法是该公司 HashiCorp 独创的 HCL(HashiCorp configuration language), 它可以兼容 JSON 格式。

provider "aws" 部分,它指定选用什么 provider, 以及验证信息。

(3)resource "aws_s3_bucket" "s3_bucket" 部分

如果 bucket-test-bucket 不存在的话,运行 terraform apply 将会创建它,否则试图更新该 bucket。

(4)初始化工作目录

在初始化 Terraform 工作目录之前, 其他命令如 apply, plan 多是不可用的,提示需要初始化工作目录,命令是 terraform init

(5). 执行 Terraform 管理命令

有了前面的准备之后,终于可以开始运行 Terraform 的管理命令了。Terraform 在正式执行之前提供了预览执行计划的机会,让我们清楚的了解将要做什么

terraform plan

terraform apply

总结

  1. 关于Terraform的基本操作也就这几条,很简单吧。
  2. 创建 IAM Role, 该 Role 要能操作 Lambda,S3和 CloudWatch
  3. 创建IAM Policy策略,可以操作ec2的所有权限。
  4. 将托管的IAM策略附加到角色。
  5. 创建一个Lambda函数。
  6. 创建一个cloudwatch event rule定时触发Lambda函数。
  7. 创建Lambda权限,允许外部源调用Lambda函数。

返回技术博客