62 lines
1.6 KiB
Bash
Executable File
62 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Consul 持久化存储配置脚本
|
|
# 需要在每个 Nomad 节点上运行
|
|
|
|
set -e
|
|
|
|
echo "=== Consul 持久化存储配置 ==="
|
|
|
|
# 1. 创建数据目录
|
|
CONSUL_DATA_DIR="/opt/consul/data"
|
|
echo "创建 Consul 数据目录: $CONSUL_DATA_DIR"
|
|
sudo mkdir -p $CONSUL_DATA_DIR
|
|
sudo chown -R nomad:nomad $CONSUL_DATA_DIR
|
|
sudo chmod 755 $CONSUL_DATA_DIR
|
|
|
|
# 2. 检查 Nomad 客户端配置
|
|
NOMAD_CONFIG="/etc/nomad.d/nomad.hcl"
|
|
echo "检查 Nomad 配置文件: $NOMAD_CONFIG"
|
|
|
|
# 3. 添加 host volume 配置
|
|
if ! grep -q "consul-data" $NOMAD_CONFIG; then
|
|
echo "添加 consul-data host volume 配置到 Nomad"
|
|
|
|
# 备份原配置
|
|
sudo cp $NOMAD_CONFIG $NOMAD_CONFIG.backup.$(date +%Y%m%d_%H%M%S)
|
|
|
|
# 添加 host volume 配置
|
|
sudo tee -a $NOMAD_CONFIG << 'EOF'
|
|
|
|
# Consul 持久化存储
|
|
client {
|
|
host_volume "consul-data" {
|
|
path = "/opt/consul/data"
|
|
read_only = false
|
|
}
|
|
}
|
|
EOF
|
|
|
|
echo "✅ 已添加 consul-data host volume 配置"
|
|
else
|
|
echo "✅ consul-data host volume 配置已存在"
|
|
fi
|
|
|
|
# 4. 重启 Nomad 客户端
|
|
echo "重启 Nomad 客户端以应用配置..."
|
|
sudo systemctl restart nomad
|
|
sleep 5
|
|
|
|
# 5. 验证配置
|
|
echo "验证 Nomad 客户端状态..."
|
|
sudo systemctl status nomad --no-pager -l
|
|
|
|
echo ""
|
|
echo "=== 配置完成 ==="
|
|
echo "数据目录: $CONSUL_DATA_DIR"
|
|
echo "权限: $(ls -ld $CONSUL_DATA_DIR)"
|
|
echo ""
|
|
echo "下一步:"
|
|
echo "1. 在所有节点 (ch4, ash3c, warden) 运行此脚本"
|
|
echo "2. 停止当前 Consul job: nomad job stop consul-cluster-nomad"
|
|
echo "3. 部署新的持久化配置: nomad job run consul-cluster-persistent.nomad" |