云厂商资源
1.配置云厂商访问控制:人员访问权限、API访问权限、秘钥等
2.配置云厂商对应的provider
3.定义云厂商资源
4.申请云厂商资源
创建配置文件
对所有资源的代码描述都需要定义配置文件中,用于Terraform加载和解析,建议分类创建结构化的配置文件,例如
- version.tf :required_providers{} 定义对应云厂商的providers,source关键字定义provider的源地址,version关键字指定provider的版本号等
- main.tf:定义云厂商的access_key/secret_key/region等
- variables.tf:通过variable关键字声明变量的名称和type,在系统环境变量中export敏感变量的值(以TF_VAR_的名称开头)
- terraform.tfvars:对声明的变量进行配置和赋值
- output.tf:定义输出内容
分类别创建云厂商Resource的tf文件
- 每个资源块描述一个或多个基础对象、计算实例或更高级别的组件,例如网络、DNS 记录
- 资源名称必须以字母或下划线开头,并且只能包含字母、数字、下划线和破折号
- 资源参数引用:
. .
例如,在tf文件中定义私有网络(名称、网段、区域、ID等)、安全策略(访问类型、规则、出入流量、开放端口等)、等
初始化
- 通过在tf文件所在目录下执行命令
terraform init
- 初始化过程: 初始化后端、寻找下载安装云厂商的对应版本的Provider
- 初始化时自动创建
.terraform
目录,用来管理缓存的提供程序插件和模块等配置 - state文件用于存储Terraform的数据
- 当provider版本变化时,需要重新初始化
计划与预览
- 命令
terraform plan
打印当前状态和期望状态之间的差异(不会执行变更) - 评估 Terraform 配置,并打印声明的所有资源的期望状态
- 将期望状态与当前工作目录的基础设施对象进行比较
申请资源
- 命令
terraform apply
运行plan计划中的操作 - 默认会出现是否批准该计划的提示,使用
-auto-approve
选项可以放弃该提示 - terraform会自动调整plan中的操作来执行