因为博主所在公司最近业务量上升,各个项目进度加快,使得原有饱和的服务器资源变得紧张起来。博主非常着急啊,因而就作了一系列的资源使用统计和分析,而后向上递交了采购计划。linux
如题《记一次服务器上架的总结和反思》,服务器采购计划最终是批了。博主心情愉悦地等待着这批服务器的到达,并设计了相关的上架流程和自动化方案,最终进行了具体的实施操做。虽然在实施过程当中遇到了一些问题,不过都是些不影响主流程的小问题,其中不乏在流程中忽略的点和未设计到的点,这些都是很值得过后思考和反思了。毕竟,这只是一次扩容,之后这种状况还会发生不少次。为了将来更美好,为了祖国更加繁荣昌盛,为了。。。就写一篇博文记录下本次服务器上架的事情吧!安全
阿西吧,不扯了,下面进入文章正题。服务器
准备工做架构
在服务器到达以前,博主在忙现有服务器资源的使用状况统计和分析,写服务器采购计划,采购事宜以及机房新机柜的合同签定。运维
服务器资源的使用状况统计和分析方面ssh
因为公司这方面卡的不是很严,所以就采集了目前服务器的CPU、内存和磁盘的相关数据指标,来反应当前服务器资源有多紧张。。。已经紧的不能行了。。。ide
服务器采购计划方面工具
首先针对当前架构要调整的地方和预期资源使用增加的估值来算出本次采购所须要的资源数量,而后根据资源数量换算成相关的服务器配置,最终得出服务器硬件的缺口。测试
采购方面spa
因为公司规模也不是很大,又是家互联网公司,也就没有走公开招标的路线。主要针对公司的几个经常使用供货商进行了相关的询价,而后针对架构进行对比,最终固然是选择了一家性价比最高的(必须是最便宜的)一家。
机房方面
提早通知了机房的联系人进行了新机柜需求的商榷。因为是老客户了,在价格方面也都没啥好再谈的。走走流程,合同签下,机房那边就提早把新机柜准备好了。老机柜到新机柜之间的网线也提早交代机房为咱们铺设完毕。
在服务器到达以后,因为本次线上和线下环境资源都出现不足。所以,服务器分两个批次,一批到线上机房,一批到线下公司内部机房。到线上机房的这批,要提早和机房交代进行签收和上架操做。机房会协助咱们记录号服务器的SN(Serial Number)号和mac地址,这些信息正常状况下会贴在服务器背板上。
因为此次想把服务器的上架流程打通,使整个流程尽量的自动化,因此我和一同事就去了机房在现场协助上架。蛋疼的去早了,去了服务器才送达都还没拆了。。。协助机房人员把服务器拆出来,拿到机房里面进行人肉放服务器,人肉登记SN和mac进行CMDB入库操做。
开始实施
下面就要开始自动化装机操做了!
我先在一台服务器上部署了一套kickstart(使用cobbler也能够,cobbler只不过是把kickstart包了一层)。因为本次上架的服务器是一批虚拟化服务器和一批存储服务器,所以我针对这两种状况编写了2个ks文件。
新服务器要想到PXE装机这一步,首先作以下几个步骤:
一、开机按F2进入System Setup
二、选择Device Setting下的Integrated RAID Controller xxxx Configuration Utility选项卡下,根据本身的服务器类型作适合级别的RAID阵列
三、在IDRAC Setting下(即DELL远程控制设置)下,设置远程控制的IP和关联的网卡接口等
四、在System BIOS下默认服务器的开机启动顺序。服务器的默认启动顺序很是重要,必定要设置为从硬盘启动,防止PXE装完系统重启以后由从PXE重复安装。
以上的步骤设置完毕以后,咱们就能够经过DELL的远控页面(即IDRAC WEB)设置服务器为仅在下一次重启时进入PXE启动。
在自动装机这个流程中,我将服务器装机、系统初始化,应用初始化,虚拟化部署等拆封成了两大步骤。
第一大步骤:服务器装机
在这一步骤中,主要经过ks文件的设定来自动应答服务器安装过程当中的各类设置,好比root密码、时区、分区状况等等。
这一步中,有一个重点就是如何肯定你装的这台服务器的主机名和 IP 是你预设好的?
我是这样子来实现的,经过将服务器的SN号和预设主机名与IP地址作对应,而后录入到CMDB中。在 ks 的安装后脚本中,我经过放入命令经过获取系统的SN号(使用dmidecode -t 1命令),而后经过SN号去查CMDB服务器获取当前SN号对应的是哪一个主机名和 IP 地址,而后进行进一步的设置操做。
第二大步骤:系统初始化,应用初始化和虚拟化部署
在这一步骤中,主要靠编写独立的初始化工具来完成整个步骤的流程操做。因为该步骤发生在服务器系统安装操做以后,所以咱们会在系统装机的安装后脚本中设定自动获取该初始化工具。在服务器重启完毕以后执行,进而完成整个步骤操做。
该脚本主要包含:
系统层面的初始化(防火墙、selinux、内核参数、帐户权限、服务器互信和相关安全设置等)
相关应用的初始化(自动加入到zabbix监控、puppet和ldap中)
虚拟化的初始化(自动部署虚拟化,按照CMDB中的设定自动由模板机产生虚拟机)
在整个自动化过程当中,目前考虑到的就是以上的方面。经过机房提供的SN和mac地址,将信息录入CMDB而后服务器安装以后经过CMDB获取相关的元数据,完成指定操做,完全释放企业运维。不过,我认为只是把苦逼的部分转嫁到了机房运维的头上,像将服务器放到机柜里、抄写SN和mac、设置raid和idrac这些仍是须要有人来搞得。不过谁让咱们付钱了呢强调,我这里可没有黑机房运维的意思。
问题总结
按照我上面聊得,好像没有啥问题似得。下面就到总结问题的时刻了。
问题以下:
一、在提采购计划时,忘了采购网线,致使取机房前一天匆忙联系采购
二、去机房的时候,干活工具没有带齐(我的充电线忘记带了)
三、服务器信息在录入CMDB的时候,我的缘由少录入了2个字段的信息,致使2台服务器安装完毕以后没有主机名和IP
四、没有将须要安装的软件包作本地yum源致使安装过程缓慢,以zabbix和puppet为主。。。
五、因为疏漏。。系统盘大小为102400MB,误写成1024000MB,致使2台服务器进行了重装。。。
六、在系统初始化时,忘记添加ssh端口的更改,致使服务器安装完毕以后,另写脚本批量从跑该做业。
七、ks文件编写时,没有使用服务器作测试,致使在dell服务器上跑时,报了一个网卡选择的问题,最后谷歌之,添加了相关参数解决了该问题
阿西吧,好忧伤了。。。整个过程当中,碰到的问题仍是蛮多的。总结下来,没有技术性的难点和屏障,主要问题仍是处在预案不够全面,实施的时候不够认真仔细致使。唉,是时候反思一波了。。。
目前,以上的问题已经被我修正。线下的这批服务器还没搞,下周去再搞就会很轻松了。
OK,本文就到这里,相关的实施文档,我会在这两天抽空写下分享给你们。