运维平台化Cobbler和ipmi实现自动化装机平台

简介:

Pxe运维平台:

数据都是模拟的,勿当真!!!

070817236.jpg


更多关于运维自动化的文章,请到 xiaorui.cc


这段时间,去感受了下公司的pxe装机平台。 这边的装机是二次开发过的,加了很多的自定义的模块。一说 pxe装机,大家觉得很简单的事,说来也确实是。。。但是我们经常会遇见些皮毛又让人蛋疼的事,尤其是批量装机后,让业务线验收的时候,我们要先ping主机,然后ssh测试下,raid配置检查下,初始化下。。。

有朋友说可以用脚本搞呀,我们这边也确实是这么搞的,但还是会出现手忙脚乱的现象,我相信很多朋友也都遇见过,小量的pxe装机,大家都很稳妥的,我这段时间和同事测试,20个服务器之内的,大家都很是胸有成竹。但是数目一大,服务器一杂,配置的不通,这时候就会出现。。。。   其实就单纯的用cobbler装机,肯定不会很快的又特别顺利的配置完毕。  当一切顺利的时候还好说,但是万一出问题,比如是raid情况,有些是没有初始化,有些是没有根据业务线需求配置各种信息,还有些确实是装完了,但是让人恼火的是ping不通,ssh登录不了,kerberos也登录不了。。。。等等。。。



要做平台话的原因是:
             我们不用手忙脚乱的做检测,要让我们知道各个服务器的进度到那里了。 是否重启了,是否划入了装机的vlan,是否收到了dhcp给的ip,是否进行安装,是否配置了ip,是否初始化了,是否部署了berkeros 。。。。。。 等等


前端  handlebars  jquery

后端  python

服务  cobbler


平台处理流程:

               业务线提需求——领导批准——通告网络组——配置pxe以及收集服务器信息——ipmi控制pxe——自动配置raid——装机——配置ip——获取他要做的事情——初始化信息——测试环境——通告基础运维组——通告业务线


我这里简单说下,要点。


cobbler 已经有了web ui 。但是好多东西和自己这边的工单和数据平台接口不搭边,干脆就自己搞的了。


自动化装机一定要格外小心,别他线上的机器给装了,为了确保这一点,有能力的公司,一般都会配置一个vlan ,pxe就在这个vlan中,这个pxe在这vlan中只能和pxe服务器、同级的服务器有通信能力。pxe有双网卡,一个是pxe,另一个是在外面的。有些服务器时常的抽风,重启后会pxe启动,要是你在装机vlan下,他会拿到dhcp的ip和tftp的地址。。。。这就糟了。。。


自动配置raid ,一般都是需要把一堆的raid工具集成到一个小系统里面,类似winpe的东西,这样我们可以在小系统内完成raid的配置。


ipmi管理,现在服务器都有ipmi的东西的,我们通过ipmitool工具对服务器进行重启,以及boot配置,通过浏览器进行console控制。


获取他要做的事情,我们在pxe做了一个小server,比如临时的调整,已经信息的收集,脚本的运行。


通告,客户端把所有事都搞完了,给pxe的那个小server发个包,说自己已经完成,申请进入数据vlan


他会给你发个邮件,或者在平台中看到,你点确认后,他会划入数据vlan

装机服务器中有个脚本,一直ping外网,当他能访问外网,就说明 一切都ok了。他会发邮件并给平台发个post数据。


关于这些cobbler,我相信大多数的朋友已经搞过好多了,我也就不多说了。

需要注意的话,更好的自动化还需要多点的功能,比如 ipmitool的用法,以及通告完成,自动划入划出vlan,初始化各种信息和密码。。。。


源地址:http://rfyiamcool.blog.51cto.com/1030776/1280524

先说下ipmitool

通过ipmitool主要可以实现以下几种操作:

  1、查看主板的各种传感器信息,如cpu文档,主板电压等。

  2、查看电源状态,并远程硬关机和开机。

  3、远程指定boot引导顺序

  4、远程视图,此功能是在ipmi的基础上改进bmc实现kvm功能(Keyboard, Video, Mouse)

  5、远程文本视图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1 、先是查看和配置ip信息和用户信息
   ipmitool -H ip -U user -P xxxx lan print  1  # 1 为网络(lan)的信道(channel) ,默认是 1 , 运行命令时可以省略不输入。
   ipmitool -I open lan print  1  #此命令和上面效果一样,不过此处是在本地执行,上一条是远程执行
   ipmitool -I open lan  set  1  ipaddr  192.168 . 0.120  #在隧道 1 设置ip
   ipmitool -I open lan  set  1  netmask  255.255 . 255.0  #在隧道 1 设置掩码
   ipmitool -I open lan  set  1  defgw ipaddr  192.168 . 0.254  #在隧道 1 设置网关
   ipmitool -I open lan  set  1  access on #开启隧道 1 访问
   ipmitool -H ip -U root -P xxxx user list #查看用户列表
   ipmitool -H ip -U root -P xxxx user  set  password  2  #设置用户密码
   2 、查看传感器信息(对应管理A)
   ipmitool -H ip -U root -P xxxx sdr  #打印传感器数据
   ipmitool -H ip -U root -P xxxx sensor  #打印传感器详细数据
   3 、远程开关机
   ipmitool -H ip -U root -P xxxx power off   #硬关机,直接切断电源
   ipmitool -H ip -U root -P xxxx power soft   #软关机,即如同轻按一下开机扭
   ipmitool -H ip -U root -P xxxx power on  #硬开机
   ipmitool -H ip -U root -P xxxx power reset   #硬重启
   ipmitool -H ip -U root -P xxxx power status  #获取当前电源状态
   4 、设置boot启动项
   ipmitool -H ip -U root -P xxxx chassis bootdev <device>
       bootdev <device> [clear-cmos=yes|no]
       bootdev <device> [options=help,...]
       none : Do not change boot device order
       pxe : Force PXE boot
       disk : Force boot from  default  Hard-drive
       safe : Force boot from  default  Hard-drive, request Safe Mode
       diag : Force boot from Diagnostic Partition
       cdrom : Force boot from CD/DVD
       bios : Force boot into BIOS Setup
       floppy: Force boot from Floppy/primary removable media


ipmitool就可以实现与硬件交互,推荐使用,你也没有别的好选择。


自动中可以配合重启,pxe,获取电源状态,重新配置密码。


需要说明的一点:  ipmi的管理,有时经常的抽风,很让人郁闷~   dell还可以,尤其是hp dl系列  ibm  x3... 系列的服务器 ,让人抓狂。经常会遇见登录不了,果断时间又可以了,所以大家需要把错误的管理ip暂时堆放到队列里面,等sleep 30s后  再去获取,这时候就90%的可能性成功了。

关于ipmi的管理,我是用python调用ipmitool工具写的,各种模块写完,差不多有1800行的代码量,说实话很费心。因为各个服务器用的管理卡型号不一样,有时会莫名的修改错误,比如 lanplus和 user list 。


有时就需要亲自上手改ip和密码了。

033751410.jpg



对于自动划入装机vlan,他的标准做法是你提供ip和mac地址,然后从交换机上测试,ip和mac匹配的话,进行划入装机vlan。

有时候因为各种的错误没有ip地址了,这样的话,我们需要用ipmi来重启服务器,在交换机中可以看到up down的信息,当端口down的时候,我们用ipmitool的工具查看是否真的电源down状态,当up的时候,看看是否电源已经开启了。通过这两点判断准确性,不然碰巧有个sb重启了,你给划入装机vlan。。。。这就。。。

自动划入vlan实现的方式是,定期去交换机拿数据,然后对比信息,推送信息和指令。


自动raid的配置, 我们是是封装的一个小内核系统,附带了厂家的raid厂商工具,实现自动的配置。

大家可以用MegaCli,他可以实现这些功能的。

简单提下他的用法,详细的大家搜搜哈~

1
2
3
4
5
6
7
8
9
10
创建一个 raid5 阵列,由物理盘  2 , 3 , 4  构成,该阵列的热备盘是物理盘  5
#/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r5 [ 1 : 2 , 1 : 3 , 1 : 4 ] WB Direct -Hsp[ 1 : 5 ] -a0
创建阵列,不指定热备
#/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r5 [ 1 : 2 , 1 : 3 , 1 : 4 ] WB Direct -a0
删除阵列
#/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdDel -L1 -a0
在线添加磁盘
#/opt/MegaRAID/MegaCli/MegaCli64 -LDRecon -Start -r5 -Add -PhysDrv[ 1 : 4 ] -L1 -a0
阵列创建完后,会有一个初始化同步块的过程,可以看看其进度。
#/opt/MegaRAID/MegaCli/MegaCli64 -LDInit -ShowProg -LALL -aALL




对于信息的定制,是分两种方式的。cobbler system就可以实现根据mac地址分配不同的业务。我们也可以通过c s的框架来获取业务的需求。装机后,会去server端 也就是到pxe端get任务数据。


通告的方式一是调用exchange的接口发邮件,二是 提交post请求,把工单的状态修改成完成。



对于平台化的思路:

             我们能直接页面就定***务


这个就较简单了,把工单上被领导批准的任务取出来,然后展现到页面上。

咱们选择后,直接异步的给后端处理。后端调用cobbler接口来对参数的传递参数。

             我们可以看到服务器的进度


通过后端的处理,用js模板把数据展现到页面中,我们可以看到各个主机的电源情况,ping情况,装机时间,完成的个数图表

             我们可以看到各个指标完成进度


对于每个可以发送状态的情况,都要向pxe的一个server,发送他现在的情况。

比如   pxe启动,划入vlan,装机后获取到的临时ip【这个需求在pxe端监控dhcp log】,正在改需求中的ip,部署业务,初始化,已经发送邮件,已经验收。。。 这些都可以发送一个状态出来,这样我们就可以知道每个服务器都在那个进度上。对于一些过慢的,咱们就直接ipmi的bmc瞅瞅原因。


源地址:http://rfyiamcool.blog.51cto.com/1030776/1280524



这两天我要写个简单demo,来实现页面的数据展现

主要是:

           进度的查看,以及系统版本,ks文件,脚本,业务线的选择


071153960.jpg


我们也可以用ipmitool的文本视窗功能远程控制ipmi图形

现在已经实现了,类似小米的装机平台,在页面上看到ipmi主机情况。

wKiom1MOqnGwsehzAAGbEjvsSg4479.jpg

这是我的实现方式,只是还没空放到页面上显示罢了~


182905853.png


有兴趣的朋友,可以搞搞saltstack cobbler的方式 !




 本文转自 rfyiamcool 51CTO博客,原文链接:http://blog.51cto.com/rfyiamcool/1280524 ,如需转载请自行联系原作者

相关文章
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
68 4
|
27天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
27天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
68 1
|
1月前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
1月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
61 4
|
2月前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
104 1
|
2月前
|
运维 监控 测试技术
构建高效运维体系:从监控到自动化的实践之路
【10月更文挑战第9天】 在当今信息技术飞速发展的时代,运维作为保障系统稳定性与效率的关键角色,正面临前所未有的挑战。本文将探讨如何通过构建一个高效的运维体系来应对这些挑战,包括监控系统的搭建、自动化工具的应用以及故障应急处理机制的制定。我们将结合具体案例,分析这些措施如何帮助提升系统的可靠性和运维团队的工作效率。
62 1
|
2月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
2月前
|
存储 运维 监控
高效运维管理:从基础架构优化到自动化实践
在当今数字化时代,高效运维管理已成为企业IT部门的重要任务。本文将探讨如何通过基础架构优化和自动化实践来提升运维效率,确保系统的稳定性和可靠性。我们将从服务器选型、存储优化、网络配置等方面入手,逐步引导读者了解运维管理的核心内容。同时,我们还将介绍自动化工具的使用,帮助运维人员提高工作效率,降低人为错误的发生。通过本文的学习,您将掌握高效运维管理的关键技巧,为企业的发展提供有力支持。
|
2月前
|
运维 监控 安全
构建高效运维体系:从监控到自动化的全面指南在当今数字化时代,运维作为保障系统稳定性和效率的重要环节,其重要性不言而喻。本文将深入探讨如何构建一个高效的运维体系,从监控系统的搭建到自动化运维的实施,旨在为读者提供一套完整的解决方案。
本文详细介绍了高效运维体系的构建过程,包括监控系统的选择与部署、日志分析的方法、性能优化的策略以及自动化运维工具的应用。通过对这些关键环节的深入剖析,帮助运维人员提升系统的可靠性和响应速度,降低人工干预成本,实现业务的快速发展和稳定运行。

热门文章

最新文章