Terraform - 厂商

云厂商资源

Terraform通过Provider管理基础设施,使用Provider与云供应商API进行交互。
每个Provider都包含相关的资源和数据源。

支持列表

官方文档:

通用步骤

一般情况下,应用云厂商的步骤如下:

  1. 在云厂商页面控制台配置访问控制:人员访问权限、API访问权限、秘钥等
  2. Terraform声明云厂商对应的provider
  3. Terraform定义云厂商资源:专有网络(VPC,virtual private cloud)、安全组、
  4. Terraform申请云厂商资源

通过Terraform来定义和申请

1-创建配置文件

对所有资源的代码描述都需要定义配置文件中,用于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等)、安全策略(访问类型、规则、出入流量、开放端口等)、等

2-初始化

  • 通过在tf文件所在目录下执行命令 terraform init
  • 初始化过程: 初始化配置后端state、寻找下载安装云厂商的对应版本的Provider
  • 初始化时自动创建.terraform目录,用来管理缓存的提供程序插件和模块等配置
  • state文件用于存储Terraform的数据
  • 当provider版本变化时,需要重新初始化

3-格式化与验证

  • terraform fmt命令格式化代码,保持代码整洁
  • terraform validate命令对定义的代码进行语法校检

4-计划与预览

  • 命令terraform plan打印当前状态和期望状态之间的差异(不会执行变更)
  • 评估 Terraform 配置,并打印声明的所有资源的期望状态
  • 将期望状态与当前工作目录的基础设施对象进行比较

5-申请资源

  • 命令terraform apply运行plan计划中的操作
  • 默认会出现是否批准该计划的提示,使用-auto-approve选项可以放弃该提示
  • terraform会自动调整plan中的操作来执行
posted @ 2024-08-22 23:16  Anliven  阅读(10)  评论(0编辑  收藏  举报