简介
官网 https://developer.hashicorp.com/terraform/intro
Infrastructure as Code tool.
Terraform本质上是通过调用API实现对各种服务器资源的CRUD操作。
Terraform主要是用于架构的编排,譬如创建EC2,设置VPC,安装docker等,而且其中的顺序必须要遵循一定的顺序。
另一个IaC工具是Ansible。Ansible可以用来配置基础设置、部署应用、安装和更新应用等
Terraform创建并测试完后,可以精确自动化地复制更多的环境。
安装Terraform
1 | brew install terraform |
查看Terraform版本号
1 | terraform -v |
安装结果如下
初始化AWS环境
- 连接到AWS账户
- 创建VPC
- 创建Subnet
本地环境设置
创建名为Terraformed的文件夹,并在其中创建文件main.tf
*.tf是Terraform文件的标准命名方式
使用Visual Studio Code打开main.tf,并且安装Terraform官方插件。
安装完插件以后可以在VS Code中更方便地编辑Terraform文件
注册AWS云账号
注册完毕后可以免费使用AWS云计算资源
注册完毕后会自动创建root用户,此时应该通过IAM创建一个权限较低的管理员账户,并通过管理员账户管理普通账户。
添加group或者选择”Attach existing policies directly”勾选需要赋予的权限
Terraform连接到AWS
Providers作为Terraform中最重要的关键字,用于标识需要调用的远程云服务供应商API
Providers列表如下,支持许多的云服务供应商
支持的资源供应商列表 https://registry.terraform.io/browse/providers
包括云服务、Devops工具(Ansible、Github、Grafana、Jenkins、Kubernetes …)等
通过以下*.tf文件,将以编程的方式连接到AWS服务
AWS语法和源码示例
https://registry.terraform.io/providers/hashicorp/aws/latest
https://registry.terraform.io/providers/hashicorp/aws/latest/docs
1 | provider "aws" { |
*.tf文件是一个定义文件,编写完毕后需要执行以下命令安装相应的依赖(类似npm/maven instal)
进入*.tf所在的文件夹
1 | terraform init |
运行结果
可以看到新文件生成
查看terraform状态
执行 terraaform state,以生成tfstate文件
该文件可以记录当前terraform资源的状态列表
terraform state的子命令
简介
官网 https://developer.hashicorp.com/terraform/intro
Infrastructure as Code tool.
Terraform本质上是通过调用API实现对各种服务器资源的CRUD操作。
Terraform主要是用于架构的编排,譬如创建EC2,设置VPC,安装docker等,而且其中的顺序必须要遵循一定的顺序。
另一个IaC工具是Ansible。Ansible可以用来配置基础设置、部署应用、安装和更新应用等
Terraform创建并测试完后,可以精确自动化地复制更多的环境。
安装Terraform
1 | brew install terraform |
查看Terraform版本号
1 | terraform -v |
安装结果如下
初始化AWS环境
- 连接到AWS账户
- 创建VPC
- 创建Subnet
本地环境设置
创建名为Terraformed的文件夹,并在其中创建文件main.tf
*.tf是Terraform文件的标准命名方式
使用Visual Studio Code打开main.tf,并且安装Terraform官方插件。
安装完插件以后可以在VS Code中更方便地编辑Terraform文件
注册AWS云账号
注册完毕后可以免费使用AWS云计算资源
注册完毕后会自动创建root用户,此时应该通过IAM创建一个权限较低的管理员账户,并通过管理员账户管理普通账户。
添加group或者选择”Attach existing policies directly”勾选需要赋予的权限
Terraform连接到AWS
Providers作为Terraform中最重要的关键字,用于标识需要调用的远程云服务供应商API
Providers列表如下,支持许多的云服务供应商
支持的资源供应商列表 https://registry.terraform.io/browse/providers
包括云服务、Devops工具(Ansible、Github、Grafana、Jenkins、Kubernetes …)等
通过以下*.tf文件,将以编程的方式连接到AWS服务
AWS语法和源码示例
https://registry.terraform.io/providers/hashicorp/aws/latest
https://registry.terraform.io/providers/hashicorp/aws/latest/docs
1 | provider "aws" { |
*.tf文件是一个定义文件,编写完毕后需要执行以下命令安装相应的依赖(类似npm/maven instal)
进入*.tf所在的文件夹
1 | terraform init |
运行结果
可以看到新文件生成
Terraform常用命令
1 | terraform init # 初始化terraform文件 |