#!/bin/bash set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" CONFIG_FILE="$PROJECT_DIR/config/cluster-vars.yml" echo "=== K3s集群自动化部署 ===" # 检查配置文件 if [ ! -f "$CONFIG_FILE" ]; then echo "❌ 错误: 配置文件不存在: $CONFIG_FILE" echo "请复制 config/cluster-vars.yml.example 为 config/cluster-vars.yml 并填写配置" exit 1 fi # 安装依赖 if ! command -v ansible &> /dev/null; then echo "📦 安装Ansible..." sudo apt update sudo apt install -y ansible python3-pip python3-yaml fi # 生成inventory echo "📝 生成Ansible inventory..." cd "$PROJECT_DIR" python3 "$SCRIPT_DIR/generate-inventory.py" # 部署K3s集群 echo "🚀 部署K3s集群..." cd "$PROJECT_DIR/k3s-ansible" ansible-playbook site.yml \ -i inventory/hosts.ini \ -e "@$CONFIG_FILE" # 配置kubectl echo "⚙️ 配置kubectl..." mkdir -p ~/.kube sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config sudo chown $USER:$USER ~/.kube/config # 验证集群 echo "✅ 验证集群状态..." kubectl get nodes echo "=== K3s集群部署完成 ==="