java_demo/server-setup.sh
wangtianqi abdb259a9f 更新Jenkins配置支持SSH用户名密码认证 + 添加详细的Jenkins面板操作指南
- 修改Jenkinsfile支持SSH用户名密码认证方式
- 添加JENKINS_PANEL_GUIDE.md详细操作指南
- 添加QUICK_START.md快速配置清单
- 添加服务器配置脚本支持用户名密码认证
- 更新配置文档和部署说明
2025-06-23 18:39:00 +08:00

169 lines
4.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Jenkins Demo 目标服务器配置脚本
# 运行环境116.62.163.84
set -e
echo "🚀 开始配置Jenkins Demo部署环境..."
# 1. 更新系统
echo "📦 更新系统包..."
yum update -y
# 2. 安装必要工具
echo "🔧 安装必要工具..."
yum install -y curl wget git
# 3. 配置Docker假设已安装
echo "🐳 配置Docker..."
systemctl enable docker
systemctl start docker
# 4. 创建应用目录
echo "📁 创建应用目录..."
mkdir -p /opt/jenkins-demo
mkdir -p /opt/jenkins-demo/logs
mkdir -p /opt/jenkins-demo/backup
# 5. 创建日志目录
echo "📋 创建日志目录..."
mkdir -p /var/log/jenkins-demo
chmod 755 /var/log/jenkins-demo
# 6. 配置防火墙(如果需要)
echo "🔥 配置防火墙..."
# 开放应用端口
firewall-cmd --permanent --add-port=80/tcp || true
firewall-cmd --permanent --add-port=8080/tcp || true
firewall-cmd --reload || true
# 7. 创建应用用户(可选,增强安全性)
echo "👤 创建应用用户..."
useradd -r -s /bin/false -d /opt/jenkins-demo jenkins-demo || true
chown -R jenkins-demo:jenkins-demo /opt/jenkins-demo || true
chown -R jenkins-demo:jenkins-demo /var/log/jenkins-demo || true
# 8. 配置Docker用户权限
echo "🔐 配置Docker权限..."
usermod -aG docker jenkins-demo || true
# 9. 创建部署脚本
echo "📜 创建部署脚本..."
cat > /opt/jenkins-demo/deploy.sh << 'EOF'
#!/bin/bash
# 应用部署脚本
APP_NAME="jenkins-demo"
CONTAINER_NAME="jenkins-demo-prod"
IMAGE_TAG="${1:-latest}"
echo "🚀 开始部署 ${APP_NAME}:${IMAGE_TAG}"
# 停止现有容器
echo "⏹️ 停止现有容器..."
docker stop ${CONTAINER_NAME} 2>/dev/null || true
docker rm ${CONTAINER_NAME} 2>/dev/null || true
# 备份当前镜像
echo "💾 备份当前镜像..."
docker tag ${APP_NAME}:latest ${APP_NAME}:backup-$(date +%Y%m%d-%H%M%S) 2>/dev/null || true
# 运行新容器
echo "🏃 启动新容器..."
docker run -d \
--name ${CONTAINER_NAME} \
--restart unless-stopped \
-p 80:8080 \
-e SPRING_PROFILES_ACTIVE=prod \
-e JAVA_OPTS="-Xms512m -Xmx1024m" \
-v /var/log/jenkins-demo:/app/logs \
--health-cmd="curl -f http://localhost:8080/api/health || exit 1" \
--health-interval=30s \
--health-timeout=10s \
--health-retries=3 \
--health-start-period=60s \
${APP_NAME}:${IMAGE_TAG}
echo "✅ 部署完成!"
echo "🌐 应用访问地址: http://116.62.163.84"
echo "🏥 健康检查: http://116.62.163.84/api/health"
EOF
chmod +x /opt/jenkins-demo/deploy.sh
# 10. 创建清理脚本
echo "🧹 创建清理脚本..."
cat > /opt/jenkins-demo/cleanup.sh << 'EOF'
#!/bin/bash
echo "🧹 开始清理Docker资源..."
# 删除停止的容器
docker container prune -f
# 删除未使用的镜像
docker image prune -f
# 删除旧的备份镜像保留最近5个
echo "🗑️ 清理旧备份镜像..."
docker images jenkins-demo --format "table {{.Repository}}:{{.Tag}}" | \
grep "backup-" | tail -n +6 | xargs -r docker rmi
echo "✅ 清理完成!"
EOF
chmod +x /opt/jenkins-demo/cleanup.sh
# 11. 设置定时清理任务
echo "⏰ 设置定时清理任务..."
(crontab -l 2>/dev/null; echo "0 2 * * 0 /opt/jenkins-demo/cleanup.sh >> /var/log/jenkins-demo/cleanup.log 2>&1") | crontab -
# 12. 创建监控脚本
echo "📊 创建监控脚本..."
cat > /opt/jenkins-demo/monitor.sh << 'EOF'
#!/bin/bash
APP_NAME="jenkins-demo-prod"
HEALTH_URL="http://localhost/api/health"
# 检查容器状态
if ! docker ps | grep -q ${APP_NAME}; then
echo "❌ 容器 ${APP_NAME} 未运行"
exit 1
fi
# 检查健康状态
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" ${HEALTH_URL})
if [ "$HTTP_CODE" != "200" ]; then
echo "❌ 应用健康检查失败HTTP状态码: ${HTTP_CODE}"
exit 1
fi
echo "✅ 应用运行正常"
EOF
chmod +x /opt/jenkins-demo/monitor.sh
# 13. 显示配置摘要
echo "
🎉 服务器配置完成!
📁 应用目录: /opt/jenkins-demo
📋 日志目录: /var/log/jenkins-demo
🚀 部署脚本: /opt/jenkins-demo/deploy.sh
🧹 清理脚本: /opt/jenkins-demo/cleanup.sh
📊 监控脚本: /opt/jenkins-demo/monitor.sh
🔧 下一步操作:
1. 在Jenkins中配置SSH密钥
2. 测试SSH连接ssh root@116.62.163.84
3. 运行第一次部署
📝 常用命令:
- 部署应用: /opt/jenkins-demo/deploy.sh [版本号]
- 检查状态: /opt/jenkins-demo/monitor.sh
- 查看日志: docker logs jenkins-demo-prod
- 清理资源: /opt/jenkins-demo/cleanup.sh
"