mgmt/cloud_provider/terraform-oci-us-ashburn/main.tf

81 lines
2.1 KiB
HCL

# 查看美国区 Oracle Cloud 资源
terraform {
required_providers {
oci = {
source = "oracle/oci"
version = "~> 7.0"
}
}
}
# 直接配置美国区域 Provider - 不依赖 Consul
provider "oci" {
alias = "us_check"
tenancy_ocid = var.tenancy_ocid
user_ocid = var.user_ocid
fingerprint = var.fingerprint
private_key_path = "./oci_api_key.pem"
region = "us-ashburn-1"
}
# 获取美国区域的所有实例
data "oci_core_instances" "us_instances" {
provider = oci.us_check
compartment_id = var.tenancy_ocid
}
# 获取美国区域的所有磁盘卷
data "oci_core_volumes" "us_volumes" {
provider = oci.us_check
compartment_id = var.tenancy_ocid
}
# 获取美国区域的所有启动卷
data "oci_core_boot_volumes" "us_boot_volumes" {
provider = oci.us_check
availability_domain = "TZXJ:US-ASHBURN-AD-1"
compartment_id = var.tenancy_ocid
}
# 输出所有实例信息
output "us_instances_status" {
value = {
for instance in data.oci_core_instances.us_instances.instances :
instance.display_name => {
id = instance.id
state = instance.state
shape = instance.shape
availability_domain = instance.availability_domain
time_created = instance.time_created
}
}
description = "美国区域所有实例状态"
}
# 输出磁盘状态 - 关键信息!
output "us_volumes_status" {
value = {
for volume in data.oci_core_volumes.us_volumes.volumes :
volume.display_name => {
id = volume.id
state = volume.state
size_in_gbs = volume.size_in_gbs
time_created = volume.time_created
}
}
description = "美国区域所有数据磁盘状态"
}
# 输出启动磁盘状态 - 更关键!
output "us_boot_volumes_status" {
value = {
for boot_volume in data.oci_core_boot_volumes.us_boot_volumes.boot_volumes :
boot_volume.display_name => {
id = boot_volume.id
state = boot_volume.state
size_in_gbs = boot_volume.size_in_gbs
time_created = boot_volume.time_created
}
}
description = "美国区域所有启动磁盘状态"
}