#!/bin/bash # 韩国区域 Oracle 云实例管理脚本 # 用于管理 ch2 实例(终止或停止)并将资源重新分配给 A1 实例 set -e # 遇到错误时退出 echo "开始执行韩国区域 Oracle 云实例管理..." echo "请选择操作模式:" echo "1) 终止实例 (terminate) - 完全删除实例,释放所有资源" echo "2) 停止实例 (stop) - 停止实例但保留配置,可随时重启" read -p "请输入选择 (1 或 2,默认为 1): " choice choice=${choice:-1} if [ "$choice" = "2" ]; then echo "您选择了停止实例模式" STRATEGY="stop" else echo "您选择了终止实例模式" STRATEGY="terminate" fi # 检查必要工具 if ! command -v terraform &> /dev/null; then echo "错误: 未找到 Terraform" exit 1 fi # 获取当前工作目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" echo "当前目录: $SCRIPT_DIR" echo "步骤 1: 初始化 Terraform" terraform init echo "步骤 2: 检查当前状态" if [ "$STRATEGY" = "stop" ]; then terraform plan -var ch2_enabled=false -var instance_management_strategy="stop" -var a1_storage_size_gb=200 else terraform plan -var ch2_enabled=false -var instance_management_strategy="terminate" -var a1_storage_size_gb=200 fi read -p "确认要执行此计划吗?(y/N): " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "操作已取消" exit 0 fi echo "步骤 3: 应用变更" if [ "$STRATEGY" = "stop" ]; then terraform apply -var ch2_enabled=false -var instance_management_strategy="stop" -var a1_storage_size_gb=200 else terraform apply -var ch2_enabled=false -var instance_management_strategy="terminate" -var a1_storage_size_gb=200 fi echo "步骤 4: 验证变更" echo "当前资源状态:" terraform show if [ "$STRATEGY" = "stop" ]; then echo "操作完成!" echo "ch2 实例已被停止(保留配置),A1 实例的存储空间已增加到 200GB。" echo "如需重新启动实例,请使用 Oracle 云控制台或 OCI CLI。" else echo "操作完成!" echo "ch2 实例已被完全终止,A1 实例的存储空间已增加到 200GB。" fi echo "ch3 实例保持不变。" echo "如需进一步验证,请检查您的 Oracle 云控制台韩国区域。"