Skip to content

USTC-StarTeam/easy-admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ubuntu 服务器管理配置脚本 (Easy Admin)

这个脚本专门用于初始化和配置Ubuntu服务器的管理环境,包含系统级配置、安全加固、常用服务安装等功能。适用于新服务器的快速部署和现有服务器的管理优化。

🎯 快速开始

服务器管理员配置

sudo ./setup.sh

查看帮助

sudo ./setup.sh --help

🎯 功能特点

这个脚本专门提供服务器管理员级别的系统配置,需要root权限,适用于服务器初始化和管理优化。

配置内容

  • 源切换工具: chsrc 通用源切换工具,自动配置Ubuntu国内镜像源
  • 系统安全加固: SSH强化配置、强制密钥认证、fail2ban防护 (适用于内网环境)
  • 用户管理: 创建管理用户、配置sudo权限
  • 常用服务: Docker、Nginx、监控工具安装
  • 系统优化: 内核参数调优、自动更新配置
  • 开发环境: Git、编译工具、Zsh、NFS、常用软件包 (不包含Python/Node.js)
  • GPU支持: NVIDIA驱动、CUDA Toolkit、GPU监控工具 (可选)
  • 监控工具: 实时系统监控和性能分析

🏗️ 脚本架构

主脚本

  • setup.sh - 主入口脚本,服务器管理员配置

子脚本目录 (scripts/)

系统级配置脚本

  • install_chsrc.sh - 安装 chsrc 源切换工具并配置Ubuntu源
  • system_security.sh - 系统安全加固(SSH、防火墙、fail2ban)
  • user_management.sh - 用户管理和权限配置
  • install_dev_tools.sh - 开发工具包安装
  • install_docker.sh - Docker 容器平台安装
  • install_nginx.sh - Nginx Web服务器安装
  • install_monitoring.sh - 系统监控工具安装
  • install_gpu_drivers.sh - NVIDIA驱动和CUDA安装
  • system_optimization.sh - 系统性能优化

配置模板目录 (templates/)

  • ssh/ - SSH 配置模板
  • nginx/ - Nginx 配置模板
  • firewall/ - 防火墙规则模板 (仅供参考)
  • monitoring/ - 监控配置模板

🚀 使用方法

服务器管理员配置

# 进入脚本目录
cd easy-admin

# 给所有脚本添加执行权限
chmod +x setup.sh
chmod +x scripts/*.sh

# 运行服务器管理员配置 (需要root权限)
sudo ./setup.sh

查看帮助信息

sudo ./setup.sh --help

单独运行某个步骤

如果需要单独执行某个配置步骤:

# 安装chsrc源切换工具
sudo ./scripts/install_chsrc.sh

# 系统安全加固
sudo ./scripts/system_security.sh

# 用户管理配置
sudo ./scripts/user_management.sh

# 安装开发工具
sudo ./scripts/install_dev_tools.sh

# 安装Docker
sudo ./scripts/install_docker.sh

# 安装Nginx
sudo ./scripts/install_nginx.sh

# 系统监控工具
sudo ./scripts/install_monitoring.sh

# GPU驱动和CUDA (可选)
sudo ./scripts/install_gpu_drivers.sh

# 系统性能优化
sudo ./scripts/system_optimization.sh

🚀 配置流程

服务器管理配置流程

第1步: 源切换工具安装和配置

  • chsrc 安装: 安装通用源切换工具到 /usr/local/bin
  • Ubuntu源配置: 自动切换Ubuntu系统源到国内镜像
  • 软件包更新: 自动更新软件包列表
  • 备份保护: 自动备份原始sources.list文件

第2步: 系统安全加固

  • SSH 配置: 禁用root登录,强制公钥认证,清理默认配置
  • 密码认证: 完全禁用密码认证,仅允许密钥认证
  • fail2ban 安装: 防止暴力破解攻击
  • 内网优化: 跳过防火墙配置,适用于内网环境

第3步: 用户管理

  • 创建管理用户: 创建具有sudo权限的管理账户
  • 权限配置: 配置sudoers文件
  • SSH密钥认证: 配置公钥认证

第4步: 开发工具安装

  • 基础工具: Git、编译工具链、常用软件包
  • Shell环境: Zsh及相关插件(autosuggestions, syntax-highlighting)
  • 编程语言: Python3、Node.js等
  • 现代CLI工具: exa、bat、fd、ripgrep等
  • 数据库客户端: MySQL、PostgreSQL、Redis等
  • 网络文件系统: NFS服务器和客户端,包含管理工具

第5步: 容器平台

  • Docker 安装: Docker Engine 和 Docker Compose
  • 配置优化: Docker daemon 配置和优化
  • 用户权限: 配置非root用户使用Docker

第6步: Web服务器

  • Nginx 安装: Web服务器和反向代理
  • 配置优化: 性能优化和安全配置
  • SSL支持: Let's Encrypt证书支持

第7步: 监控工具

  • 基础监控: htop、iotop、nethogs等系统监控工具
  • 实时监控: Netdata实时监控面板
  • 指标收集: Prometheus Node Exporter
  • 自定义脚本: 系统状态和性能监控脚本

第8步: GPU驱动安装 (可选)

  • NVIDIA驱动: 自动检测并安装最新推荐版本
  • CUDA Toolkit: 安装CUDA 12.3开发环境
  • Docker GPU: 配置Docker GPU容器支持
  • 监控工具: GPU状态监控和测试工具
  • Python工具: gpustat、nvitop等GPU监控工具

第9步: 系统优化

  • 内核参数: 内存、网络、文件系统优化
  • 系统限制: 文件描述符、进程数限制优化
  • I/O调度器: 根据磁盘类型自动优化
  • 性能调优: CPU性能模式和内存管理优化

自定义修改

由于脚本被拆分为多个子脚本,您可以轻松修改特定步骤:

脚本自定义

  • chsrc工具配置: 编辑 install_chsrc.sh 调整安装方式或版本
  • 修改安全配置: 编辑 system_security.sh 调整SSH和防火墙规则
  • 自定义用户管理: 编辑 user_management.sh 修改用户创建逻辑
  • 调整开发工具: 修改 install_dev_tools.sh 选择需要的工具、Shell环境和NFS配置 (Python/Node.js已移除)
  • 调整Docker配置: 修改 install_docker.sh 更改Docker版本或配置
  • 自定义Nginx: 编辑 install_nginx.sh 和模板文件
  • 监控工具选择: 修改 install_monitoring.sh 选择不同的监控工具
  • GPU配置: 修改 install_gpu_drivers.sh 调整CUDA版本或驱动版本
  • 性能优化参数: 编辑 system_optimization.sh 调整优化参数

配置模板自定义

  • SSH配置: 编辑 templates/ssh/ 中的SSH配置模板
  • Nginx配置: 编辑 templates/nginx/ 中的站点配置模板
  • 防火墙规则: 编辑 templates/firewall/ 中的防火墙规则模板 (仅供参考,内网版本未使用)
  • 监控配置: 编辑 templates/monitoring/ 中的监控服务配置

执行流程自定义

  • 跳过步骤: 直接注释掉主脚本中对应的子脚本调用
  • 调整顺序: 修改主脚本中子脚本的执行顺序
  • 条件执行: 添加条件判断,根据需要执行特定步骤

🐛 故障排除

常见问题

网络连接问题:

# 如果下载失败,检查网络连接
curl -I https://download.docker.com
curl -I https://nginx.org
curl -I https://github.com

权限问题:

  • 脚本需要root权限或sudo权限
  • 确保使用 sudo ./setup.sh 运行脚本
  • 检查用户是否在sudoers文件中

服务启动问题:

# 检查服务状态
systemctl status docker
systemctl status nginx
systemctl status netdata

# 查看服务日志
journalctl -u docker
journalctl -u nginx

网络访问问题:

# 检查端口是否被监听
netstat -tlnp | grep :80
netstat -tlnp | grep :443
# 检查服务状态
systemctl status nginx
systemctl status docker

调试方法

如果某个步骤失败:

  1. 查看具体的错误信息
  2. 可以单独运行失败的子脚本进行调试
  3. 检查网络连接和磁盘空间
  4. 使用 ./setup.sh --help 查看帮助信息

重置方法

如果需要完全重新开始:

# 停止相关服务
sudo systemctl stop docker nginx netdata fail2ban

# 卸载软件包 (谨慎操作)
sudo apt remove --purge docker-ce docker-ce-cli containerd.io
sudo apt remove --purge nginx
sudo apt remove --purge netdata
sudo apt remove --purge fail2ban

# 删除配置文件 (备份重要数据)
sudo rm -rf /etc/docker
sudo rm -rf /etc/nginx
sudo rm -rf /etc/netdata


# 重新运行配置脚本
sudo ./setup.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages