AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

自动化运维 - 云装机实践

  • 2019-09-22
  • 本文字数:1360 字

    阅读完需:约 4 分钟

自动化运维-云装机实践

项目背景

随着 IDC 服务器数不断增加,服务器系统变更频繁,系统安装工作日益繁重,需要管理员到机房一台一台安装。新增、变更服务器资产信息无法自动录入 CMDB,手动录入设备信息容易出现错误。整个装机操作耗时耗力,服务器自动化装机、管理已经迫在眉睫。

功能介绍

云装机系统支持远程自动化安装操作系统。提供远程开关机、自动采集服务器信息功能,支持系统模板管理,可根据不同业务线和硬件配置自动选择系统模板,支持录入机架信息、IP 信息,实时显示装机进度,装机完成信息自动录入 CMDB 等功能。

核心技术

PXE:网络引导启动。支持客户机通过网络从远端服务器下载镜像,并由此通过网络安装操作系统。


KS 文件:自动化安装操作系统。通过创建一个单独的,包含安装过程中遇到的所有问题答案的文件,即在装机过程中需要手动选择和配置的选项。同时可以在 ks 文件里加入 shell 脚本,进行装机进度汇报等操作。

与原生 PXE+KS 对比

基于 PXE+KS 开发,再此基础上增加了一些新的功能,自动采集服务器信息,同步到云装机管理后台,防止后期手动录入导致数据错误。云装机管理后台支持多种装机模板管理,为新设备自动选择装机模板。支持录入服务器所在机房机架信息,用于后期机房可视化管理。支持同时进行多台设备装机,支持在管理后台实时查看装机进度。系统装机完成自动同步服务器信息到 CMDB,保证服务器数据准确性。

系统架构

主要分三层结构,六大功能模块。采用分层思想,前后端分离,模块之间通过 API 接口进行调用,相互独立。


系统各个功能模块如下:


UI 模块:提供远程开关机、发现,录入新设备、设备列表管理,系统模板管理等功能

Server 模块:提供 API 服务,包括数据录入查询等,对接 UI 模块和底层安装模块

HardWare 模块:提供支持的硬件设备信息,提供手动添加新的硬件设备等功能

CMDB 模块:存储服务器硬件信息、系统信息、机架信息、管理员信息等

BootOS 模块:通过 agent 进行信息采集上报,使管理员自动发现新设备。

底层安装模块:提供 dhcp/tftp/http/dns 等物理机安装服务


装机流程

1、通过远程管理卡从 PXE 启动服务器

2、启动后首先进入 BootOS,启动内置的 Agent 组件

3、Agent 采集信息上报到 Server 模块,在管理后台发现新设备

4、管理后台录入服务器信息,进入装机队列

5、然后 Agent 上报 mac 地址,通知 Server 端生成 PXE 安装文件

6、最后 Agent 会重启服务器,并进入系统安装流程

7、进入系统安装以后,获取 KS 文件、系统镜像文件

8、安装操作系统,并运行系统初始化 post 脚本

9、上报安装进度通知 Server 端安装完成,重启进入系统

10、Server 端同步安装信息到 CMDB 系统


系统使用展示

第一步:从 PXE 启动服务器。



第二步:发现新设备。



第三步:录入新设备。



第四步:查看装机进度。



第五步:装机完成自动录入 CMDB


系统现状

已替代传统装机方式,实现远程快速的安装操作系统,支持多台机器同时安装操作系统,历史最大并发装机数 30 台。服务器从资产录入到服务器安装,之前需要 20 多分钟,现在可以控制在 10 分钟之内操作完成,单台装机速度提升 50%,目前累计装机 600+台,系统模板 30+个。


作者介绍:


巩立新,技术保障部,运维开发工程师,参与开发 IDC 自动化、门店网络监管、通用调研等项目。


本文转载自公众号贝壳产品技术(ID:gh_9afeb423f390)。


原文链接:


https://mp.weixin.qq.com/s/fSrWF4PFZkvky7rkeCf46w


2019-09-22 21:171371

评论

发布
暂无评论
发现更多内容

前端开发怎么学习才能更快的提高学习效率

@零度

大前端

为什么我们需要Pulsar?

博文视点Broadview

给弟弟的信第1封|兄弟是父母带给我们最好的礼物

大菠萝

28天写作

Go语言学习查缺补漏ing Day2

恒生LIGHT云社区

Go 编程语言

详解工作流框架Activiti的服务架构和组件

华为云开发者联盟

工作流 工作流引擎 BPM Activiti BPMN

打造基于 PostgreSQL/openGauss 的分布式数据库解决方案

SphereEx

数据库 开源 分布式数据库 ShardingSphere SphereEx

架构训练营 Week1 作业

红莲疾风

「架构实战营」

Git进阶(五):git 分支管理策略

No Silver Bullet

git 学习 12月日更

IaaS首席架构师的架构设计思考与实践

华为云开发者联盟

架构 分布式 IaaS 虚拟化 华为云Stack

Redis架构实战:高并发情况下并发扣减库存

编程江湖

java编程

服务器宕机了,除了坐等,我还能做点什么?

JavaEdge

JVM 签约计划第二季

博客?Newsletter?付费订阅?Papyrus 都帮你搞定!

遇见

程序员 博客 Blog newsletter

面试官:重写 equals 时为什么一定要重写 hashCode?

王磊

AOP+MybatisPlus 优化特殊的日志模块

4ye

Java spring 程序员 后端 签约计划第二季

小伙伴如何更有效的自学java开发

@零度

JAVA开发 自学java

火山引擎+焱融 YRCloudFile,驱动数据存储新增长

焱融科技

云计算 分布式 云原生 高性能 文件存储

react源码解析11.生命周期调用顺序

buchila11

React React Hooks

为什么我们需要Pulsar?

博文视点Broadview

【Dart 专题】Factory 工厂构造函数

阿策小和尚

28天写作 0 基础学习 Flutter Android 小菜鸟 12月日更

大数据开发技术应该怎么学习入门才好

@零度

大数据

软件工程师年满 40 岁,下一步怎么走?|本周话题

InfoQ写作社区官方

生涯规划 个人成长 职业规划 话题讨论

Java本地事务失效了,线上应该如何排查?

JavaEdge

Spring Framework 签约计划第二季

大厂算法面试之leetcode精讲18.队列

全栈潇晨

算法 LeetCode

react源码解析12.状态更新流程

buchila11

React React Hooks

听说过python协程没?听说过 asyncio 库没?都在这一篇博客了

梦想橡皮擦

12月日更

HBase 和 Hive 的差别是什么,各自适用在什么场景中

编程江湖

大数据

模运算和与运算的一点儿简单思考

LSJ

位运算 二进制

我的Spring AOP没生效,我该如何排查?

JavaEdge

Spring Framework 签约计划第二季

大厂算法面试之leetcode精讲17.栈

全栈潇晨

LeetCode 算法面试

dart系列之:HTML的专属领域,除了javascript之外,dart也可以

程序那些事

flutter dart 程序那些事 12月日更

滚雪球学Python系列,真能学会Python!

梦想橡皮擦

内容合集 签约计划第二季

自动化运维-云装机实践_文化 & 方法_巩立新_InfoQ精选文章