# 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. 如何使用 **开发环境**: ```bash cd environments/dev terraform init terraform plan terraform apply ``` **生产环境**: ```bash cd environments/prod terraform init terraform plan terraform apply ``` ### 3. 模块使用 模块位于 `modules/` 目录,可以在不同环境中重复使用: ```hcl module "vcn" { source = "../../modules/vcn" compartment_id = var.compartment_id vcn_name = "my-vcn" cidr_block = "10.0.0.0/16" } ``` ## 优势 1. **环境隔离**:dev 和 prod 环境完全分离 2. **代码复用**:模块可在不同环境中共享 3. **配置安全**:敏感信息存储在 `~/.oci`,不在代码中 4. **易于扩展**:可添加 staging、test 等环境 ## 注意事项 1. 每个环境有独立的 Terraform 状态文件 2. 建议使用不同的 Compartment 或 Tenancy 隔离环境 3. 生产环境的 CIDR 和规格应与开发环境不同