2
3 主要变更:
4 - 重构Terraform/OpenTofu目录结构,统一迁移至infrastructure/opentofu
5 - 添加"7天创造世界"文档,记录基础设施建设演进逻辑
6 - 更新Consul集群配置管理经验,添加实际案例和解决方案
7 - 修正README中的Sticky Note,反映Consul集群健康状态
8 - 添加Ansible部署配置和inventory文件
9 - 完善项目文档结构,添加各组件配置指南
10
11 技术架构演进:
12 - 第1天: Tailscale网络连接基础 ✅
13 - 第2天: Ansible分布式控制 ✅
14 - 第3天: Nomad服务感知与任务调度 ✅
15 - 第4天: Consul配置集中管理 ✅
16 - 第5天: OpenTofu状态一致性 ✅
17 - 第6天: Vault密钥管理 ⏳
18 - 第7天: Waypoint应用部署 ⏳
91 lines
2.9 KiB
HCL
91 lines
2.9 KiB
HCL
# 查看Oracle云实例状态脚本
|
|
# 用于查看美国区和韩国区的实例状态
|
|
|
|
# 韩国区配置 - 使用默认provider
|
|
# 美国区配置 - 使用us alias
|
|
|
|
# 获取韩国区的所有实例
|
|
data "oci_core_instances" "korea_instances" {
|
|
compartment_id = data.consul_keys.oracle_config.var.tenancy_ocid
|
|
|
|
filter {
|
|
name = "lifecycle_state"
|
|
values = ["RUNNING", "STOPPED", "STOPPING", "STARTING"]
|
|
}
|
|
}
|
|
|
|
# 获取美国区的所有实例
|
|
data "oci_core_instances" "us_instances" {
|
|
provider = oci.us
|
|
compartment_id = data.consul_keys.oracle_config_us.var.tenancy_ocid
|
|
|
|
filter {
|
|
name = "lifecycle_state"
|
|
values = ["RUNNING", "STOPPED", "STOPPING", "STARTING"]
|
|
}
|
|
}
|
|
|
|
# 获取韩国区实例的详细信息
|
|
data "oci_core_instance" "korea_instance_details" {
|
|
count = length(data.oci_core_instances.korea_instances.instances)
|
|
instance_id = data.oci_core_instances.korea_instances.instances[count.index].id
|
|
}
|
|
|
|
# 获取美国区实例的详细信息
|
|
data "oci_core_instance" "us_instance_details" {
|
|
provider = oci.us
|
|
count = length(data.oci_core_instances.us_instances.instances)
|
|
instance_id = data.oci_core_instances.us_instances.instances[count.index].id
|
|
}
|
|
|
|
# 输出韩国区实例信息
|
|
output "korea_instances" {
|
|
description = "韩国区实例状态"
|
|
value = {
|
|
count = length(data.oci_core_instances.korea_instances.instances)
|
|
instances = [
|
|
for instance in data.oci_core_instance.korea_instance_details : {
|
|
id = instance.id
|
|
name = instance.display_name
|
|
state = instance.state
|
|
shape = instance.shape
|
|
region = "ap-chuncheon-1"
|
|
ad = instance.availability_domain
|
|
public_ip = instance.public_ip
|
|
private_ip = instance.private_ip
|
|
time_created = instance.time_created
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
# 输出美国区实例信息
|
|
output "us_instances" {
|
|
description = "美国区实例状态"
|
|
value = {
|
|
count = length(data.oci_core_instances.us_instances.instances)
|
|
instances = [
|
|
for instance in data.oci_core_instance.us_instance_details : {
|
|
id = instance.id
|
|
name = instance.display_name
|
|
state = instance.state
|
|
shape = instance.shape
|
|
region = "us-ashburn-1"
|
|
ad = instance.availability_domain
|
|
public_ip = instance.public_ip
|
|
private_ip = instance.private_ip
|
|
time_created = instance.time_created
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
# 输出总计信息
|
|
output "summary" {
|
|
description = "实例总计信息"
|
|
value = {
|
|
total_instances = length(data.oci_core_instances.korea_instances.instances) + length(data.oci_core_instances.us_instances.instances)
|
|
korea_count = length(data.oci_core_instances.korea_instances.instances)
|
|
us_count = length(data.oci_core_instances.us_instances.instances)
|
|
}
|
|
} |