# 开发环境主配置文件 # 引入共享版本配置 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" } } # 后端配置 backend "local" { path = "terraform.tfstate" } } # Consul Provider配置 - 使用Tailscale IP而非localhost provider "consul" { address = "100.116.158.95: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 基础设施 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" } # 开发环境特定配置 instance_count = 1 instance_size = "VM.Standard.E2.1.Micro" # 免费层 providers = { oci = oci } } # 输出 output "oracle_cloud_outputs" { description = "Oracle Cloud 基础设施输出" value = module.oracle_cloud }