Go to file
Houzhong Xu 0423dc625a
发发
2025-09-19 09:08:29 +00:00
ansible 发发 2025-09-19 09:08:29 +00:00
scripts 发发 2025-09-19 09:08:29 +00:00
README.md 发发 2025-09-19 09:08:29 +00:00
config.json Add Ansible scripts for system management 2025-09-18 03:25:21 +00:00
keys-info.md Add SSH and GPG keys information 2025-09-18 03:31:28 +00:00
semaphore-setup-guide.md Update Semaphore setup guide for mgmt repository 2025-09-18 03:26:52 +00:00

README.md

🛠️ 服务器管理自动化项目

这是一个基于 Ansible 的服务器管理自动化项目,用于管理多台服务器的系统更新、配置和维护。

📁 项目结构

mgmt/
├── ansible/
│   ├── inventory.ini                 # 服务器清单
│   ├── ansible.cfg                  # Ansible 配置
│   ├── system-update.yml            # 系统更新 playbook
│   ├── cloud-providers-update.yml   # 云服务商更新 playbook
│   ├── system-cleanup.yml           # 系统清理和维护
│   ├── service-health-check.yml     # 服务健康检查
│   ├── security-hardening.yml       # 安全加固和备份
│   ├── docker-management.yml        # Docker 容器管理
│   ├── network-connectivity.yml     # 网络连通性检查
│   ├── certificate-management.yml   # SSL 证书管理
│   ├── ops-toolkit.yml             # 运维工具包
│   ├── cron-setup.yml              # 定时任务配置
│   └── run.sh                      # 执行脚本
├── scripts/
│   └── ops-manager.sh              # 运维管理脚本
├── config.json                     # Semaphore 配置
├── keys-info.md                   # SSH 密钥信息
├── semaphore-setup-guide.md       # Semaphore 设置指南
└── README.md                      # 项目说明

🚀 快速开始

1. 环境准备

确保已安装 Ansible

# Ubuntu/Debian
sudo apt update && sudo apt install ansible

# CentOS/RHEL
sudo yum install ansible

2. 配置服务器清单

编辑 ansible/inventory.ini 文件,服务器已按功能分组:

  • lxc: Debian/Ubuntu 容器
  • alpine: Alpine Linux 容器
  • proxmox: Proxmox VE 物理机
  • armbian: ARM 设备
  • hcp: HCP 云服务器
  • feiniu: 飞牛服务器
  • germany: 德国服务器
  • 以及各种云服务商组

3. 使用运维管理脚本

# 给脚本执行权限
chmod +x scripts/ops-manager.sh

# 交互式模式
./scripts/ops-manager.sh

# 直接执行
./scripts/ops-manager.sh update lxc          # 更新 LXC 容器
./scripts/ops-manager.sh cleanup all        # 清理所有服务器
./scripts/ops-manager.sh health proxmox     # 检查 Proxmox 健康状态
./scripts/ops-manager.sh docker lxc         # 管理 LXC 中的 Docker
./scripts/ops-manager.sh toolkit germany    # 运行德国服务器工具包

# 检查模式(不做实际更改)
./scripts/ops-manager.sh update all --check

🛠️ 可用的运维脚本

核心功能

  • system-update.yml: 系统包更新
  • system-cleanup.yml: 磁盘清理、日志清理、缓存清理
  • service-health-check.yml: 服务状态监控
  • security-hardening.yml: 安全加固和备份

专业工具

  • docker-management.yml: Docker 容器和镜像管理
  • network-connectivity.yml: 网络连通性和性能测试
  • certificate-management.yml: SSL 证书监控和管理
  • ops-toolkit.yml: 统一运维仪表板

自动化

  • cron-setup.yml: 配置定时任务自动化
  • ops-manager.sh: 便捷的命令行管理工具

🤖 自动化定时任务

设置自动化定时任务:

ansible-playbook -i ansible/inventory.ini ansible/cron-setup.yml

配置的定时任务:

  • 每日 08:00: 系统健康检查
  • 每日 01:00: Docker 清理 (LXC 组)
  • 每周日 02:00: 系统清理
  • 每周一 04:30: 证书检查
  • 每周二 06:00: 网络连通性检查
  • 每月1日 03:00: 安全检查

查看自动化状态:

automation-status

📊 使用 Semaphore Web UI

参考 semaphore-setup-guide.md 文件设置 Semaphore Web 界面管理。

推送到 Gitea 后Semaphore 可以:

  • 直接识别 Ansible 项目结构
  • 使用现有的 inventory 分组
  • 运行预定义的 playbooks
  • 支持按组选择性更新
  • 提供 Web 界面管理和监控

💡 最佳实践

日常运维

# 每日快速检查
./scripts/ops-manager.sh toolkit all

# 每周系统维护
./scripts/ops-manager.sh cleanup all
./scripts/ops-manager.sh health all

# 每月安全检查
./scripts/ops-manager.sh security all --check
./scripts/ops-manager.sh cert all

紧急情况

# 紧急安全更新
./scripts/ops-manager.sh update all

# 网络问题诊断
./scripts/ops-manager.sh network all

# 服务状态检查
./scripts/ops-manager.sh health all

容器管理

# LXC 容器管理
./scripts/ops-manager.sh docker lxc
./scripts/ops-manager.sh cleanup lxc

# Alpine 容器更新
./scripts/ops-manager.sh update alpine

🔧 高级用法

按组管理

# 物理机维护
./scripts/ops-manager.sh cleanup proxmox
./scripts/ops-manager.sh health armbian

# 云服务商管理
./scripts/ops-manager.sh update huawei
./scripts/ops-manager.sh network google

# 容器管理
./scripts/ops-manager.sh docker lxc
./scripts/ops-manager.sh update alpine

检查模式

# 检查更新但不执行
./scripts/ops-manager.sh update all --check

# 详细输出
./scripts/ops-manager.sh health all --verbose

# 仅显示命令
./scripts/ops-manager.sh cleanup all --dry-run

📋 服务器组说明

  • lxc: Debian/Ubuntu 容器 (warden, gitea, mysql, postgresql, influxdb)
  • alpine: Alpine Linux 容器 (redis, authentik, calibreweb)
  • proxmox: Proxmox VE 物理机 (pve, xgp, nuc12)
  • armbian: ARM 设备 (onecloud1)
  • hcp: HCP 云服务器 (hcp1, hcp2)
  • feiniu: 飞牛服务器 (snail)
  • germany: 德国服务器 (de)
  • dev: 开发服务器 (dev1, dev2)
  • oci_kr/oci_us: Oracle 云服务器
  • huawei/google/aws: 各云服务商

📝 注意事项

  • 确保 SSH 密钥已正确配置
  • LXC 组更新需要顺序执行,避免同时更新
  • Alpine 容器使用 apk 包管理器
  • 建议先在测试环境验证
  • 定期备份重要数据
  • 监控自动化日志:tail -f /var/log/daily-health-check.log

🆘 故障排除

连接问题

# 测试连接
ansible all -i ansible/inventory.ini -m ping

# 检查特定组
ansible lxc -i ansible/inventory.ini -m ping -e "ansible_ssh_pass=313131"

权限问题

# 检查 sudo 权限
ansible all -i ansible/inventory.ini -m shell -a "whoami" --become

日志查看

# 查看自动化日志
ls -la /var/log/*-*.log
tail -f /var/log/daily-health-check.log

🎯 运维脚本使用示例

系统更新

# 更新所有服务器
./scripts/ops-manager.sh update all

# 更新特定组
./scripts/ops-manager.sh update lxc
./scripts/ops-manager.sh update alpine
./scripts/ops-manager.sh update proxmox

系统清理

# 清理所有服务器
./scripts/ops-manager.sh cleanup all

# 清理特定组
./scripts/ops-manager.sh cleanup lxc

健康检查

# 检查所有服务器健康状态
./scripts/ops-manager.sh health all

# 检查特定组
./scripts/ops-manager.sh health proxmox

Docker 管理

# 管理 LXC 组的 Docker
./scripts/ops-manager.sh docker lxc

# 检查 Docker 状态
./scripts/ops-manager.sh docker all

网络诊断

# 检查网络连通性
./scripts/ops-manager.sh network all

# 检查特定组网络
./scripts/ops-manager.sh network germany

证书管理

# 检查所有证书
./scripts/ops-manager.sh cert all

# 检查特定组证书
./scripts/ops-manager.sh cert proxmox

安全检查

# 安全检查(检查模式)
./scripts/ops-manager.sh security all --check

# 执行安全加固
./scripts/ops-manager.sh security all

运维工具包

# 运行完整的运维工具包
./scripts/ops-manager.sh toolkit all

# 检查特定服务器
./scripts/ops-manager.sh toolkit germany

📈 监控和日志

自动化监控

# 查看自动化状态
automation-status

# 查看定时任务
crontab -l

# 查看最近的健康检查
tail -20 /var/log/daily-health-check.log

手动日志查看

# 查看所有自动化日志
ls -la /var/log/*-*.log

# 实时监控日志
tail -f /var/log/daily-health-check.log

# 查看清理日志
cat /var/log/weekly-cleanup.log

🔄 定期维护建议

每日

  • 运行 ./scripts/ops-manager.sh toolkit all 快速检查
  • 查看 automation-status 了解自动化状态

每周

  • 运行 ./scripts/ops-manager.sh cleanup all 系统清理
  • 运行 ./scripts/ops-manager.sh health all 健康检查
  • 检查 /var/log/ 下的日志文件

每月

  • 运行 ./scripts/ops-manager.sh security all --check 安全检查
  • 运行 ./scripts/ops-manager.sh cert all 证书检查
  • 运行 ./scripts/ops-manager.sh network all 网络检查

按需

  • 系统更新:./scripts/ops-manager.sh update [group]
  • Docker 清理:./scripts/ops-manager.sh docker lxc
  • 网络诊断:./scripts/ops-manager.sh network all

许可证

MIT License