Terraform 系列-Terraform 项目的典型文件布局
2023/4/1 11:22:04
本文主要是介绍Terraform 系列-Terraform 项目的典型文件布局,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
系列文章
👉 Terraform 系列文章
典型文件布局
- modules/ - services/ - webserver-cluster/ - examples/ - main.tf - outputs.tf - vars.tf - user-data.sh - README.md - [ ] versions.tf - stage/ - vpc/ - services/ - frontend-app/ - backend-app/ - main.tf - outputs.tf - vars.tf - user-data.sh - README.md - [ ] provider.tf - [ ] versions.tf - [ ] terraform.tfvars(or `*.auto.tfvars`) - [ ] main.tfvars - data-storage/ - mysql/ - redis/ - prod/ - vpc/ - services/ - frontend-app/ - backend-app/ - data-storage/ - mysql/ - redis/ - mgmt/ - vpc/ - services/ - bastion-host/ - jenkins/ - global/ - iam/ - s3/ - main.tf - outputs.tf - vars.tf - user-data.sh - README.md - [ ] provider.tf - [ ] versions.tf
🔥 提示:
- [ ]
表示该项为可选内容- 示例如
examples/
表示该项为文件夹
详细说明
顶层文件夹
用于隔离环境
-
modules
:Terraform (可复用)模块文件夹 -
stage
:预发布 Env -
prod
:生产 env -
mgmt
:管理/DevOps 环境(如:堡垒机、Jenkins 等) -
global
:用于运行各种环境下都要共享的资源(如:Terraform backend - S3、IAM)
二级文件夹
用于环境中的组件
-
vpc
:网络拓扑 -
services
:此环境中运行的应用环境或微服务,例如 NGINX 前端或 Java 后端。每个应用程序甚至都应该驻留在单独的文件夹中,与其他应用程序隔离 -
data-storage
:在此环境中运行的数据存储,例如 MySQL 或 Redis。每个数据存储应该驻留在它自己的文件夹中,与其他数据存储隔离。
文件
每一个组件中,都会有相应的 Terraform 的配置文件,其命名规则如下:
-
vars.tf
: 输入变量 -
outputs.tf
: 输出变量 -
main.tf
: 资源定义 -
user-data.sh
:(可选),用户自定义脚本 -
README.md
:说明文档 -
provider.tf
:(可选),provider 信息,典型如:provider、region。不同环境,甚至同一环境的不同组件的 provider 可能不同。 -
versions.tf
:(可选),Terraform version、provider version、Terraform backend 信息。 -
terraform.tfvars
(or*.auto.tfvars
): (可选),terraform plan 及 apply
默认会传入该文件中的变量值 -
main.tfvars
:(可选),terraform plan 及 apply
可以通过-var-file=filename
来手动指定。
变量赋值
可以通过如下 3 种方式指定变量:
-var 'foo=bar' Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable. -var-file=filename Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.
-
命令行参数:
-var 'foo=bar'
-
参数文件:默认读取 terraform.tfvars(or
*.auto.tfvars
) 或通过命令行-var-file=filename
指定 -
环境变量:可以通过设置名为
TF_VAR_<NAME>
的环境变量为输入变量赋值,例如:$ export TF_VAR_image_id=ami-abc123 $ terraform plan ...
环境变量传值非常适合在自动化流水线中使用,尤其适合用来传递敏感数据,类似密码、访问密钥等
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
这篇关于Terraform 系列-Terraform 项目的典型文件布局的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解