109 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			HCL
		
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			HCL
		
	
	
	
| # 开发环境主配置文件
 | |
| 
 | |
| # 引入共享版本配置
 | |
| terraform {
 | |
|   required_version = ">= 1.6"
 | |
|   
 | |
|   required_providers {
 | |
|     # Oracle Cloud Infrastructure
 | |
|     oci = {
 | |
|       source  = "oracle/oci"
 | |
|       version = "~> 5.0"
 | |
|     }
 | |
|     
 | |
|     # 华为云
 | |
|     huaweicloud = {
 | |
|       source  = "huaweicloud/huaweicloud"
 | |
|       version = "~> 1.60"
 | |
|     }
 | |
|     
 | |
|     # 其他常用提供商
 | |
|     random = {
 | |
|       source  = "hashicorp/random"
 | |
|       version = "~> 3.1"
 | |
|     }
 | |
|     
 | |
|     tls = {
 | |
|       source  = "hashicorp/tls"
 | |
|       version = "~> 4.0"
 | |
|     }
 | |
|     
 | |
|     local = {
 | |
|       source  = "hashicorp/local"
 | |
|       version = "~> 2.1"
 | |
|     }
 | |
|   }
 | |
|   
 | |
|   # 后端配置
 | |
|   backend "local" {
 | |
|     path = "terraform.tfstate"
 | |
|   }
 | |
| }
 | |
| 
 | |
| # Oracle Cloud 提供商配置
 | |
| provider "oci" {
 | |
|   tenancy_ocid     = var.oci_config.tenancy_ocid
 | |
|   user_ocid        = var.oci_config.user_ocid
 | |
|   fingerprint      = var.oci_config.fingerprint
 | |
|   private_key_path = var.oci_config.private_key_path
 | |
|   region           = var.oci_config.region
 | |
| }
 | |
| 
 | |
| # 华为云提供商配置 (仅在需要时配置)
 | |
| provider "huaweicloud" {
 | |
|   access_key = var.huawei_config.access_key
 | |
|   secret_key = var.huawei_config.secret_key
 | |
|   region     = var.huawei_config.region
 | |
|   alias      = "huawei"
 | |
| }
 | |
| 
 | |
| # Oracle Cloud 基础设施
 | |
| module "oracle_cloud" {
 | |
|   source = "../../providers/oracle-cloud"
 | |
|   
 | |
|   # 传递变量
 | |
|   environment    = var.environment
 | |
|   project_name   = var.project_name
 | |
|   owner          = var.owner
 | |
|   vpc_cidr       = var.vpc_cidr
 | |
|   availability_zones = var.availability_zones
 | |
|   common_tags    = var.common_tags
 | |
|   oci_config     = var.oci_config
 | |
|   
 | |
|   # 开发环境特定配置
 | |
|   instance_count = 1
 | |
|   instance_size  = "VM.Standard.E2.1.Micro"  # 免费层
 | |
|   
 | |
|   providers = {
 | |
|     oci = oci
 | |
|   }
 | |
| }
 | |
| 
 | |
| # 华为云基础设施 (可选)
 | |
| module "huawei_cloud" {
 | |
|   source = "../../providers/huawei-cloud"
 | |
|   count  = contains(var.cloud_providers, "huawei") ? 1 : 0
 | |
|   
 | |
|   environment    = var.environment
 | |
|   project_name   = var.project_name
 | |
|   owner          = var.owner
 | |
|   vpc_cidr       = "10.1.0.0/16"  # 不同的 CIDR 避免冲突
 | |
|   availability_zones = var.availability_zones
 | |
|   common_tags    = var.common_tags
 | |
|   huawei_config  = var.huawei_config
 | |
|   
 | |
|   providers = {
 | |
|     huaweicloud = huaweicloud.huawei
 | |
|   }
 | |
| }
 | |
| 
 | |
| # 输出
 | |
| output "oracle_cloud_outputs" {
 | |
|   description = "Oracle Cloud 基础设施输出"
 | |
|   value       = module.oracle_cloud
 | |
| }
 | |
| 
 | |
| output "huawei_cloud_outputs" {
 | |
|   description = "华为云基础设施输出"
 | |
|   value       = length(module.huawei_cloud) > 0 ? module.huawei_cloud[0] : null
 | |
| } |