109 lines
2.9 KiB
Bash
109 lines
2.9 KiB
Bash
#!/bin/bash
|
|
|
|
# ============================================
|
|
# 服务器初始化脚本
|
|
# 在全新的阿里云服务器上运行此脚本
|
|
# ============================================
|
|
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo " 阿里云服务器初始化"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 更新系统
|
|
if command -v apt-get &> /dev/null; then
|
|
echo "检测到 Debian/Ubuntu 系统"
|
|
apt-get update
|
|
apt-get upgrade -y
|
|
apt-get install -y curl wget git vim unzip ufw
|
|
elif command -v yum &> /dev/null; then
|
|
echo "检测到 CentOS/RHEL 系统"
|
|
yum update -y
|
|
yum install -y curl wget git vim unzip firewalld
|
|
fi
|
|
|
|
# 安装 Docker
|
|
echo ""
|
|
echo "正在安装 Docker..."
|
|
if ! command -v docker &> /dev/null; then
|
|
curl -fsSL https://get.docker.com | sh
|
|
systemctl start docker
|
|
systemctl enable docker
|
|
echo "Docker 安装完成"
|
|
else
|
|
echo "Docker 已安装,跳过"
|
|
fi
|
|
|
|
# 安装 Docker Compose
|
|
echo ""
|
|
echo "正在安装 Docker Compose..."
|
|
if ! command -v docker-compose &> /dev/null; then
|
|
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")')
|
|
curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
|
chmod +x /usr/local/bin/docker-compose
|
|
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
|
|
echo "Docker Compose 安装完成"
|
|
else
|
|
echo "Docker Compose 已安装,跳过"
|
|
fi
|
|
|
|
# 配置防火墙
|
|
echo ""
|
|
echo "正在配置防火墙..."
|
|
if command -v ufw &> /dev/null; then
|
|
ufw default deny incoming
|
|
ufw default allow outgoing
|
|
ufw allow 22/tcp
|
|
ufw allow 80/tcp
|
|
ufw allow 443/tcp
|
|
ufw --force enable
|
|
echo "UFW 防火墙配置完成"
|
|
elif command -v firewall-cmd &> /dev/null; then
|
|
systemctl start firewalld
|
|
systemctl enable firewalld
|
|
firewall-cmd --permanent --add-service=ssh
|
|
firewall-cmd --permanent --add-service=http
|
|
firewall-cmd --permanent --add-service=https
|
|
firewall-cmd --reload
|
|
echo "Firewalld 防火墙配置完成"
|
|
fi
|
|
|
|
# 配置时区
|
|
echo ""
|
|
echo "设置时区为 Asia/Shanghai..."
|
|
timedatectl set-timezone Asia/Shanghai || true
|
|
|
|
# Docker 镜像加速(阿里云)
|
|
echo ""
|
|
echo "配置 Docker 镜像加速..."
|
|
mkdir -p /etc/docker
|
|
cat > /etc/docker/daemon.json << 'EOF'
|
|
{
|
|
"registry-mirrors": [
|
|
"https://mirror.ccs.tencentyun.com",
|
|
"https://hub-mirror.c.163.com"
|
|
],
|
|
"log-driver": "json-file",
|
|
"log-opts": {
|
|
"max-size": "10m",
|
|
"max-file": "3"
|
|
}
|
|
}
|
|
EOF
|
|
systemctl restart docker
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " 服务器初始化完成"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Docker 版本:"
|
|
docker --version
|
|
echo "Docker Compose 版本:"
|
|
docker-compose --version
|
|
echo ""
|
|
echo "下一步:上传项目文件并运行 ./deploy.sh"
|
|
echo ""
|