上一篇 下一篇 分享链接 返回 返回顶部

Ansible批量采集硬件配置自动生成资产报表

发布人: 发布时间:21小时前 阅读量:13

传统硬件资产盘点面临的挑战

对于拥有数百乃至上千台服务器的IDC机房或云计算集群,硬件配置的定期梳理是运维管理的基础工作。管理员需要记录CPU型号、物理核心数、内存容量、磁盘接口类型及容量、网卡速率、BIOS版本等信息。传统做法依赖人工登录每台机器执行命令并手工记录,不仅效率低下,且容易产生误记与遗漏。面对服务器频繁的扩容、硬件更换和系统重装,静态的台账很快便会失真。

利用Ansible进行无Agent采集

Ansible作为轻量级的自动化运维工具,通过SSH协议即可对目标主机执行任务,无需在服务器上安装额外代理,这使其特别适合对混合环境(物理机、虚拟机)进行一次性或周期性的信息收集。通过编写Playbook,可以调用Linux系统自带的dmidecode、lscpu、lsblk、lspci等命令,或者读取/proc/cpuinfo/proc/meminfo等伪文件系统,将输出结果统一注册为变量,然后使用template模块或copy模块将结构化数据汇总到指定文件。

Playbook核心思路示范

  1. 定义主机清单:hosts文件中按机房或业务类型分组,并设置ansible_userbecome权限。
  2. 采集任务:使用commandshell模块执行如dmidecode -t processorlsblk -J -o NAME,SIZE,ROTA,TYPE等命令,并通过register关键字保存输出。
  3. 解析与格式化:在Python脚本或Jinja2模板中将原始字符串转换为结构化字典,提取关键字段。
  4. 生成报表:将解析后的数据通过template模块渲染为CSV、JSON或HTML表格,并复制到控制节点或上传至共享存储。

数据清洗与报表输出策略

采集后的原始文本往往包含大量无关信息。例如dmidecode输出中包含多组内存设备,需要根据Size字段过滤已占用插槽并统计总容量。建议使用Ansible的set_factfilter插件进行数据规整,或直接在Playbook中调用自定义Python筛选脚本。生成的报表建议包含以下字段:主机名、IP地址、操作系统版本、CPU型号与物理核心数、逻辑核心数、内存总容量(GB)、磁盘列表(型号/容量/类型)、网卡速率、序列号。最终报表可按Excel格式导出便于查看,也支持生成JSON供CMDB系统自动入库。

自动化的进一步延伸

将上述Playbook注册到Jenkins、GitLab CI或Ansible Tower中,即可实现每周自动扫描。若在采集脚本中加入差异对比逻辑,当CPU或内存数量发生变化时自动发送邮件告警,从而让硬件变更记录从“人工回忆”变为“系统留痕”。通过这种方式,管理员无需登录每台机器,只需查看控制端生成的报表,即可快速掌握全机房硬件配置与健康状态,显著提高运维效率和管理透明度。

目录结构
全文
企业微信 企业微信
微信公众号 微信公众号
服务热线: 400-790-1688
电子邮箱: 3310008520@qq.com