59 lines
1.5 KiB
Bash
Executable File
59 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 为所有 Nomad Server 部署 Consul Client
|
|
|
|
echo "🚀 部署 Consul Client 到所有 Nomad Server 节点"
|
|
echo "================================================"
|
|
|
|
# 部署 Consul Client
|
|
echo "1. 部署 Consul Client..."
|
|
ansible-playbook -i ansible/inventory/hosts.yml \
|
|
ansible/consul-client-deployment.yml \
|
|
--limit nomad_servers
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ Consul Client 部署成功"
|
|
else
|
|
echo "❌ Consul Client 部署失败"
|
|
exit 1
|
|
fi
|
|
|
|
# 更新 Nomad 配置
|
|
echo ""
|
|
echo "2. 更新 Nomad Server 配置..."
|
|
echo "需要手动更新每个 Nomad Server 的配置:"
|
|
echo ""
|
|
echo "修改 /etc/nomad.d/nomad.hcl 中的 consul 块:"
|
|
echo "consul {"
|
|
echo " address = \"127.0.0.1:8500\" # 改为本地"
|
|
echo " server_service_name = \"nomad\""
|
|
echo " client_service_name = \"nomad-client\""
|
|
echo " auto_advertise = true"
|
|
echo " server_auto_join = true"
|
|
echo " client_auto_join = false"
|
|
echo "}"
|
|
echo ""
|
|
echo "然后重启 Nomad 服务:"
|
|
echo "systemctl restart nomad"
|
|
|
|
echo ""
|
|
echo "3. 验证部署..."
|
|
sleep 5
|
|
|
|
# 验证 Consul Client
|
|
for server in semaphore ch3 ash1d ash2e ch2 de onecloud1; do
|
|
echo "检查 $server..."
|
|
if curl -s http://$server.tailnet-68f9.ts.net:8500/v1/status/leader > /dev/null 2>&1; then
|
|
echo "✅ $server - Consul Client 运行正常"
|
|
else
|
|
echo "❌ $server - Consul Client 无响应"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "🎉 部署完成!"
|
|
echo "下一步:"
|
|
echo "1. 手动更新每个 Nomad Server 的配置文件"
|
|
echo "2. 重启 Nomad 服务"
|
|
echo "3. 验证 Nomad 与 Consul 的集成"
|