69 lines
2.3 KiB
Bash
Executable File
69 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Nomad集群NFS配置部署脚本
|
||
# 根据容器类型和地理位置进行分情况处理
|
||
|
||
set -e
|
||
|
||
echo "🚀 开始部署Nomad集群NFS配置..."
|
||
|
||
# 颜色定义
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 函数:打印带颜色的消息
|
||
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
|
||
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
||
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
||
|
||
# 检查当前目录
|
||
if [ ! -f "configuration/inventories/production/inventory.ini" ]; then
|
||
log_error "请在mgmt项目根目录运行此脚本"
|
||
exit 1
|
||
fi
|
||
|
||
# 1. 为所有节点配置NFS挂载
|
||
log_info "步骤1: 为所有节点配置NFS挂载 (根据容器类型和地理位置)"
|
||
ansible-playbook -i configuration/inventories/production/inventory.ini \
|
||
playbooks/setup-nfs-by-container-type.yml
|
||
|
||
# 2. 为Nomad客户端配置NFS卷支持
|
||
log_info "步骤2: 配置Nomad客户端支持NFS卷"
|
||
ansible-playbook -i configuration/inventories/production/nomad-cluster.ini \
|
||
playbooks/setup-nomad-nfs-client.yml
|
||
|
||
# 3. 验证NFS挂载状态
|
||
log_info "步骤3: 验证所有节点的NFS挂载状态"
|
||
ansible all -i configuration/inventories/production/inventory.ini \
|
||
-m shell -a "df -h /mnt/fnsync 2>/dev/null || echo 'NFS未挂载'" \
|
||
--limit '!snail'
|
||
|
||
# 4. 验证Nomad客户端配置
|
||
log_info "步骤4: 验证Nomad客户端配置"
|
||
ansible nomad_clients -i configuration/inventories/production/nomad-cluster.ini \
|
||
-m shell -a "nomad node status -self 2>/dev/null || echo 'Nomad未运行'"
|
||
|
||
# 5. 部署示例NFS任务(可选)
|
||
read -p "是否部署示例NFS任务?(y/n): " deploy_example
|
||
if [ "$deploy_example" = "y" ] || [ "$deploy_example" = "Y" ]; then
|
||
log_info "部署示例NFS任务..."
|
||
nomad run jobs/nomad-nfs-multi-type.nomad
|
||
echo "等待任务启动..."
|
||
sleep 10
|
||
nomad job status nfs-multi-type-example
|
||
fi
|
||
|
||
log_info "✅ NFS配置部署完成!"
|
||
echo ""
|
||
echo "📋 使用说明:"
|
||
echo "1. NFS挂载点: /mnt/fnsync"
|
||
echo "2. 本地LXC容器: 直接使用挂载目录"
|
||
echo "3. 海外PVE容器: 使用优化参数挂载"
|
||
echo "4. Nomad作业: 使用host volume 'nfs-shared'"
|
||
echo ""
|
||
echo "🔧 手动验证命令:"
|
||
echo " - 检查NFS挂载: df -h /mnt/fnsync"
|
||
echo " - 检查Nomad状态: nomad node status"
|
||
echo " - 运行NFS任务: nomad run jobs/nomad-nfs-multi-type.nomad" |