74 lines
2.2 KiB
Bash
Executable File
74 lines
2.2 KiB
Bash
Executable File
#!/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 云控制台韩国区域。" |