# 开发环境主配置文件 # 引入共享版本配置 terraform { required_version = ">= 1.6" required_providers { # Oracle Cloud Infrastructure oci = { source = "oracle/oci" version = "~> 7.20" } # 其他常用提供商 random = { source = "hashicorp/random" version = "~> 3.1" } tls = { source = "hashicorp/tls" version = "~> 4.0" } local = { source = "hashicorp/local" version = "~> 2.1" } # Consul Provider consul = { source = "hashicorp/consul" version = "~> 2.22.0" } # HashiCorp Vault Provider vault = { source = "hashicorp/vault" version = "~> 4.0" } # DigitalOcean Provider digitalocean = { source = "digitalocean/digitalocean" version = "~> 2.0" } } # 后端配置 backend "local" { path = "terraform.tfstate" } } # Consul Provider配置 provider "consul" { address = "localhost:8500" scheme = "http" datacenter = "dc1" } # Vault Provider配置 provider "vault" { address = var.vault_config.address token = var.vault_token } # 从Consul获取Oracle Cloud配置 data "consul_keys" "oracle_config" { key { name = "tenancy_ocid" path = "config/dev/oracle/kr/tenancy_ocid" } key { name = "user_ocid" path = "config/dev/oracle/kr/user_ocid" } key { name = "fingerprint" path = "config/dev/oracle/kr/fingerprint" } key { name = "private_key" path = "config/dev/oracle/kr/private_key" } } # 从Consul获取Oracle Cloud美国区域配置 data "consul_keys" "oracle_config_us" { key { name = "tenancy_ocid" path = "config/dev/oracle/us/tenancy_ocid" } key { name = "user_ocid" path = "config/dev/oracle/us/user_ocid" } key { name = "fingerprint" path = "config/dev/oracle/us/fingerprint" } key { name = "private_key" path = "config/dev/oracle/us/private_key" } } # 使用从Consul获取的配置的OCI Provider provider "oci" { tenancy_ocid = data.consul_keys.oracle_config.var.tenancy_ocid user_ocid = data.consul_keys.oracle_config.var.user_ocid fingerprint = data.consul_keys.oracle_config.var.fingerprint private_key = data.consul_keys.oracle_config.var.private_key region = "ap-chuncheon-1" } # 美国区域的OCI Provider provider "oci" { alias = "us" tenancy_ocid = data.consul_keys.oracle_config_us.var.tenancy_ocid user_ocid = data.consul_keys.oracle_config_us.var.user_ocid fingerprint = data.consul_keys.oracle_config_us.var.fingerprint private_key = data.consul_keys.oracle_config_us.var.private_key region = "us-ashburn-1" } # Oracle Cloud 基础设施 - 暂时注释掉以避免VCN数量限制问题 # 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 # # # 使用从Consul获取的配置 # oci_config = { # tenancy_ocid = data.consul_keys.oracle_config.var.tenancy_ocid # user_ocid = data.consul_keys.oracle_config.var.user_ocid # fingerprint = data.consul_keys.oracle_config.var.fingerprint # private_key = data.consul_keys.oracle_config.var.private_key # region = "ap-chuncheon-1" # compartment_ocid = data.consul_keys.oracle_config.var.tenancy_ocid # 使用tenancy_ocid作为compartment_ocid # } # # # 开发环境特定配置 # instance_count = 1 # instance_size = "VM.Standard.E2.1.Micro" # 免费层 # # providers = { # oci = oci # } # } # 输出 # output "oracle_cloud_outputs" { # description = "Oracle Cloud 基础设施输出" # value = module.oracle_cloud # }