Oracle Cloud (OCI) Terraform 配置
项目结构
oracle/
├── main.tf # 根配置(Provider 定义)
├── modules/ # 共享模块
│ ├── vcn/ # 虚拟云网络模块
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ └── outputs.tf
│ └── compute/ # 计算实例模块
│ ├── main.tf
│ └── variables.tf
└── environments/ # 环境特定配置
├── dev/ # 开发环境
│ ├── main.tf
│ └── variables.tf
└── prod/ # 生产环境
├── main.tf
└── variables.tf
配置说明
1. ~/.oci 配置
您的 OCI 配置已经位于 ~/.oci/ 目录中,包含:
config- OCI 配置文件oci_api_key.pem- 私钥文件
Terraform OCI Provider 会自动读取这些配置,无需在代码中硬编码凭证。
2. 如何使用
开发环境:
cd environments/dev
terraform init
terraform plan
terraform apply
生产环境:
cd environments/prod
terraform init
terraform plan
terraform apply
3. 模块使用
模块位于 modules/ 目录,可以在不同环境中重复使用:
module "vcn" {
source = "../../modules/vcn"
compartment_id = var.compartment_id
vcn_name = "my-vcn"
cidr_block = "10.0.0.0/16"
}
优势
- 环境隔离:dev 和 prod 环境完全分离
- 代码复用:模块可在不同环境中共享
- 配置安全:敏感信息存储在
~/.oci,不在代码中 - 易于扩展:可添加 staging、test 等环境
注意事项
- 每个环境有独立的 Terraform 状态文件
- 建议使用不同的 Compartment 或 Tenancy 隔离环境
- 生产环境的 CIDR 和规格应与开发环境不同