Terraform Basic
Terraform Basic
Terraform 简介
Terraform(IaaC)是用于安全有效地构建,更改和版本控制基础结构的工具。 Terraform可以管理现有和流行的服务提供商以及定制的内部解> 决方案。
配置文件向Terraform描述了运行单个应用程序或整个数据中心所需的组件。Terraform生成执行计划,以描述达到预期状态所需执行的> 操作,然后执行该计划以构建所描述的基础结构。随着配置的更改,Terraform能够确定更改的内容并创建可以应用的增量执行计划。
Terraform可以管理的基础结构包括低级组件,例如计算实例,存储和网络,以及高级组件,例如DNS条目,SaaS功能等。
Terraform 安装
首先从官方站点下载与当前系统相同的Terraform
版本, 解压缩, 然后放置于环境变量目录下即可.
Linux
系统下(其他系统?):
Terraform with AWS
预先准备:
- aws cli已成功安装;
- 成功获取
AKSK
; - aws 本地证书已成功配置;
aws cli安装很简单, 在此就不再赘述.
使用AKSK
配置aws本地证书:
执行完该命令之后, 会自动在家目录(Mac/Linux/Windows)创建一个名为.aws
的文件夹, 文件夹中包含config
配置文件以及credentials
证书认证文件(实际为AKSK
明文的ini风格文件).
快速开始
编写配置文件:
初始化:
格式化和验证配置文件:
应用配置文件:
使用terraform show
查看生成后的信息.
将state文件存放到远程
Terraform
的状态文件以及所有配置文件都是存于本地的, 如果要协同工作, 则需将文件推送到远端, 可以使用Github
, GitLab
, aws S3
等等, 同时, 官方也提供了一个云端平台来存储和协同工作.
Terraform Cloud 使用参考: https://learn.hashicorp.com/tutorials/terraform/aws-remote?in=terraform/aws-get-started
token生成: https://app.terraform.io/app/settings/tokens, 将生成之后的token放置于~/.terraformrc
文件中(Windows系统为%APPDATA%\terraform.rc
), 文件内容如下所示:
在配置文件中引用远端存储配置示例文件内容如下所示:
最后初始化即可, terraform init
其他
terraform apply [--auto-approve -target <RESOURCES>]
: 应用.tf文件, 并自动应答yes, 指定资源名称;terraform fmt
: 格式化配置文件;terraform validate
: 检查配置文件语法是否正确;terraform show
: 查看生成之后的状态;terraform state list
: 查看状态列表;terraform state show <STATE_LIST_OUTPUT_NAME>
: 查看指定状态的详细信息;terraform refresh
: 刷新状态;terraform destroy [-target <RESOURCES>]
: 摧毁;
参考链接
- Terraform Documentation: https://www.terraform.io/docs
- Terraform AWS: https://registry.terraform.io/providers/hashicorp/aws/latest/docs
- Terraform Provider: https://www.terraform.io/docs/providers/index.html