137 lines
3.2 KiB
Bash
Executable File
137 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 🔧 ash3c IP 地址修复脚本
|
|
|
|
set -e
|
|
|
|
echo "🔧 ash3c IP 地址问题修复脚本"
|
|
echo ""
|
|
|
|
# 定义正确的 IP 地址
|
|
CORRECT_IP="100.116.80.94"
|
|
ASH3C_HOST="100.116.80.94"
|
|
|
|
echo "📡 检查 ash3c 节点的网络配置..."
|
|
|
|
# 检查 ash3c 的实际 IP 配置
|
|
echo "🔍 检查 ash3c 节点的 IP 地址绑定..."
|
|
ssh -p 22 -i ~/.ssh/id_ed25519 ben@${ASH3C_HOST} "echo '3131' | sudo -S ip addr show" | grep -E "inet.*100\." || echo "❌ 未找到 Tailscale IP"
|
|
|
|
echo ""
|
|
echo "🔍 检查 Tailscale 状态..."
|
|
ssh -p 22 -i ~/.ssh/id_ed25519 ben@${ASH3C_HOST} "echo '3131' | sudo -S tailscale status" || echo "❌ Tailscale 状态检查失败"
|
|
|
|
echo ""
|
|
echo "🔧 修复 ash3c 的 Nomad 配置..."
|
|
|
|
# 创建正确的配置文件
|
|
cat > /tmp/ash3c-nomad.hcl << EOF
|
|
# 🔧 ash3c 修复后的 Nomad 配置
|
|
datacenter = "dc1"
|
|
region = "global"
|
|
data_dir = "/opt/nomad/data"
|
|
|
|
# 强制使用正确的 Tailscale IP
|
|
bind_addr = "${CORRECT_IP}"
|
|
|
|
# 日志配置
|
|
log_level = "INFO"
|
|
log_file = "/var/log/nomad/nomad.log"
|
|
|
|
server {
|
|
enabled = true
|
|
bootstrap_expect = 3
|
|
encrypt = "NVOMDvXblgWfhtzFzOUIHnKEOrbXOkPrkIPbRGGf1YQ="
|
|
|
|
server_join {
|
|
retry_join = [
|
|
"100.116.158.95:4647",
|
|
"100.117.106.136:4647",
|
|
"100.116.80.94:4647"
|
|
]
|
|
retry_max = 10
|
|
retry_interval = "15s"
|
|
}
|
|
|
|
# 更宽松的心跳配置
|
|
heartbeat_grace = "30s"
|
|
min_heartbeat_ttl = "10s"
|
|
}
|
|
|
|
client {
|
|
enabled = true
|
|
network_interface = "tailscale0"
|
|
}
|
|
|
|
ui_config {
|
|
enabled = true
|
|
}
|
|
|
|
addresses {
|
|
http = "0.0.0.0"
|
|
rpc = "${CORRECT_IP}"
|
|
serf = "${CORRECT_IP}"
|
|
}
|
|
|
|
ports {
|
|
http = 4646
|
|
rpc = 4647
|
|
serf = 4648
|
|
}
|
|
|
|
plugin "docker" {
|
|
config {
|
|
allow_privileged = true
|
|
volumes {
|
|
enabled = true
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
|
|
echo "📤 上传修复后的配置到 ash3c..."
|
|
scp -P 22 -i ~/.ssh/id_ed25519 /tmp/ash3c-nomad.hcl ben@${ASH3C_HOST}:/tmp/
|
|
|
|
echo "🔧 在 ash3c 上应用修复..."
|
|
ssh -p 22 -i ~/.ssh/id_ed25519 ben@${ASH3C_HOST} << 'REMOTE_SCRIPT'
|
|
echo '3131' | sudo -S systemctl stop nomad || true
|
|
echo '3131' | sudo -S pkill -f nomad || true
|
|
sleep 5
|
|
|
|
# 备份旧配置
|
|
echo '3131' | sudo -S cp /etc/nomad.d/nomad.hcl /etc/nomad.d/nomad.hcl.backup.$(date +%Y%m%d_%H%M%S) || true
|
|
|
|
# 应用新配置
|
|
echo '3131' | sudo -S cp /tmp/ash3c-nomad.hcl /etc/nomad.d/nomad.hcl
|
|
echo '3131' | sudo -S chown nomad:nomad /etc/nomad.d/nomad.hcl
|
|
echo '3131' | sudo -S chmod 640 /etc/nomad.d/nomad.hcl
|
|
|
|
# 清理数据目录
|
|
echo '3131' | sudo -S rm -rf /opt/nomad/data/*
|
|
|
|
# 重启服务
|
|
echo '3131' | sudo -S systemctl daemon-reload
|
|
echo '3131' | sudo -S systemctl enable nomad
|
|
echo '3131' | sudo -S systemctl start nomad
|
|
|
|
echo "✅ ash3c 配置修复完成"
|
|
REMOTE_SCRIPT
|
|
|
|
echo ""
|
|
echo "⏰ 等待 ash3c 服务启动..."
|
|
sleep 15
|
|
|
|
echo ""
|
|
echo "🔍 检查 ash3c 服务状态..."
|
|
ssh -p 22 -i ~/.ssh/id_ed25519 ben@${ASH3C_HOST} "echo '3131' | sudo -S systemctl status nomad --no-pager" || echo "❌ 服务状态检查失败"
|
|
|
|
echo ""
|
|
echo "🧹 清理临时文件..."
|
|
rm -f /tmp/ash3c-nomad.hcl
|
|
|
|
echo ""
|
|
echo "✅ ash3c IP 修复完成!"
|
|
echo ""
|
|
echo "下一步:"
|
|
echo "1. 检查集群状态: nomad server members"
|
|
echo "2. 如果还有问题,运行核弹级重置: ./scripts/utilities/nuclear-reset.sh" |