基于Ansible的企业级智能运维自动化平台SmartOps实战

 一、项目简介

SmartOps(Smart Operations) 是基于 Ansible 的企业级智能运维自动化平台,实现了服务器全生命周期自动化管理,包括自动发现、智能监控、自动修复、安全审计、自动备份等功能。

 核心特性

- ✅ 自动发现与注册:识别服务器角色和配置,生成主机指纹

- ✅ 智能健康检查:实时监控系统资源,自动计算健康评分

- ✅ 智能监控与自愈:基于阈值的监控和自动修复

- ✅ 安全审计:自动化安全评分和合规检查

- ✅ 自动备份:定时备份关键配置,支持一键恢复

- ✅ 多格式报告:自动生成 HTML/JSON/Markdown 报告

 二、技术架构

 技术栈

- Ansible 2.9+:自动化引擎

- Jinja2:模板引擎

- Systemd:服务管理

- Bash:脚本自动化

 项目结构

ansible-learning/

├── inventory/           主机清单

├── playbooks/           Playbook 剧本

│   ├── smart-ops-platform.yml     主 Playbook

│   └── tasks/                     功能模块

├── templates/           Jinja2 模板

├── scripts/             辅助脚本

└── ansible.cfg          Ansible 配置

 三、部署实战

 步骤1:环境准备

 截图1:Ansible版本信息

- 虚拟机位置:控制节点(ansible主机)

- 执行命令:

bash

ansible --version

 步骤2:配置主机清单

 截图2:主机清单配置

- 虚拟机位置:控制节点(ansible主机)

- 执行命令:

bash

cat inventory/hosts.ini

- 或者:在编辑器中打开 `inventory/hosts.ini` 文件截图

 步骤3:测试连接

 截图3:连接测试结果

- 虚拟机位置:控制节点(ansible主机)

- 执行命令:

bash

ansible all -i inventory/hosts.ini -m ping

 步骤4:执行主 Playbook

 截图4:Playbook执行开始

- 虚拟机位置:控制节点(ansible主机)

- 执行命令:

bash

cd /root/ansible-learning

ansible-playbook playbooks/smart-ops-platform.yml

 步骤5:自动发现结果

 截图5:自动发现完成

- 虚拟机位置:控制节点(ansible主机)

- 执行时机:Playbook 执行过程中,等待看到输出

- 截图内容:看到 " 自动发现完成" 的输出,包含:

  - 服务器角色

  - 虚拟化类型

  - 运行服务数

  - CPU核心

  - 内存大小

步骤6:健康检查结果

 截图6:健康检查完成

- 虚拟机位置:控制节点(ansible主机)

- 执行时机:Playbook 执行过程中,等待看到输出

- 截图内容:看到 "系统健康检查" 的输出,包含:

  - 健康状态(HEALTHY/WARNING/CRITICAL)

  - 健康评分(如 85.5/100)

  - CPU/内存/磁盘使用率

  - 系统负载

  - 网络连通状态

 步骤7:智能监控部署

 截图7:监控系统部署完成

- 虚拟机位置:控制节点(ansible主机)

- 执行时机:Playbook 执行过程中,等待看到输出

- 截图内容:看到 "智能监控系统已部署" 的输出,包含:

  - 监控间隔

  - CPU/内存/磁盘阈值

  - 自动修复状态

  - 服务状态

 步骤8:自动备份系统

 截图8:备份系统配置完成

- 虚拟机位置:控制节点(ansible主机)

- 执行时机:Playbook 执行过程中,等待看到输出

- 截图内容:看到 "自动化备份系统已配置" 的输出,包含:

  - 备份路径

  - 保留天数

  - 备份计划时间

 步骤9:安全审计结果

 截图9:安全审计完成

- 虚拟机位置:控制节点(ansible主机)

- 执行时机:Playbook 执行过程中,等待看到输出

- 截图内容:看到 " 安全审计完成" 的输出,包含:

  - 安全评分(如 75/100)

  - 防火墙状态

  - 开放端口数

  - 待更新包数量

  - 自动修复状态

 步骤10:智能报告生成

 截图10:报告生成完成

- 虚拟机位置:控制节点(ansible主机)

- 执行时机:Playbook 执行过程中,等待看到输出

- 截图内容:看到 "智能报告已生成" 的输出,包含:

  - JSON报告路径

  - HTML报告路径

  - Markdown报告路径

  - 报告索引路径

 截图10-1:报告目录

- 虚拟机位置:目标节点(node1 或 node2)

- 执行命令:

bash

ls -lh /opt/smartops/reports/

- 截图内容:显示报告文件列表

 截图10-2:HTML报告内容

- 虚拟机位置:目标节点(node1 或 node2)

- 执行命令:

bash

cat /opt/smartops/reports/report-node1.html | head -100

- 或者:在浏览器中打开 HTML 文件截图

- 截图内容:显示 HTML 报告内容

 步骤11:部署完成

 截图11:部署完成信息

- 虚拟机位置:控制节点(ansible主机)

- 执行时机:Playbook 执行完成后,最后看到输出

- 截图内容:看到带框的 "✅ 智能运维平台部署完成" 的输出,包含:

  - 主机名

  - IP地址

  - 环境信息

  - 报告路径

  - 状态(成功)

 四、核心功能说明

 4.1 自动发现与注册

自动识别服务器角色、虚拟化类型、运行服务等,生成主机指纹。

实现要点:

- 使用 Ansible `setup` 模块收集系统信息

- 基于主机名自动识别服务器角色(webserver/database/application)

- 生成 JSON 格式的主机指纹和注册信息

 4.2 智能健康检查

实时监控 CPU、内存、磁盘、系统负载等,计算健康评分。

健康评分算法:

健康评分 = 100 - (CPU使用率 + 内存使用率 + 磁盘使用率) / 3

状态分级:

- healthy:资源使用正常

- warning:资源使用偏高

- critical:资源使用严重超标

 4.3 智能监控与自动修复

基于 Systemd Timer 的定时监控,支持自动修复。

监控配置:

- 监控间隔:60秒

- CPU阈值:80%

- 内存阈值:85%

- 磁盘阈值:90%

自动修复策略:

- CPU 过高:清理临时文件、重启异常进程

- 内存不足:清理缓存、释放内存

- 磁盘满:清理日志、删除过期备份

 4.4 自动化备份系统

定时备份关键配置,支持一键恢复。

备份配置:

- 备份路径:`/opt/backups`

- 保留天数:30天

- 备份计划:每天 02:00

 4.5 安全审计与合规检查

自动化安全评分和合规检查,支持自动修复。

检查项:

- SSH 配置安全性

- 防火墙状态

- 开放端口

- 系统更新情况

- 密码策略

安全评分算法:

- 基础分:100分

- 允许 Root 登录:-20分

- 防火墙未启用:-15分

- 有待更新包:-10分

 4.6 智能报告生成

自动生成多格式报告,便于分析和归档。

报告格式:

- JSON:机器可读,便于集成

- HTML:可视化展示,适合查看

- Markdown:文档友好,便于版本控制

 五、项目亮点

1. 模块化设计:功能模块独立,易于维护和扩展

2. 错误处理:使用 `block/rescue` 处理异常

3. 企业级特性:生产环境就绪

4. 可视化报告:多格式报告,直观展示

5. 自动化程度高:自动发现、自动监控、自动修复

 六、总结

SmartOps 平台基于 Ansible 实现了企业级智能运维自动化,覆盖自动发现、健康检查、智能监控、安全审计、自动备份等核心功能。

项目优势:

- ✅ 功能完整,覆盖运维核心场景

- ✅ 代码结构清晰,易于维护

- ✅ 企业级特性,生产可用

- ✅ 文档完善,易于上手

 七、参考资料

- [Ansible 官方文档](https://docs.ansible.com/)

- [Jinja2 模板语法](https://jinja.palletsprojects.com/)

- [Systemd Timer 使用指南](https://www.freedesktop.org/software/systemd/man/systemd.timer.html)

版权声明:本文为原创文章,转载请注明出处。

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐