Files
k3s_auto_deploy/scripts/deploy.sh

47 lines
1.1 KiB
Bash
Executable File

#!/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集群部署完成 ==="