73 lines
1.9 KiB
Markdown
73 lines
1.9 KiB
Markdown
# 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 和规格应与开发环境不同 |