由于博主所在公司最近业务量上升,各个项目进度加快,使得原有饱和的服务器资源变得紧张起来。博主很是着急啊,于是就做了一系列的资源使用统计和分析,然后向上递交了采购计划。

如题《记一次服务器上架的总结和反思》,服务器采购计划最终是批了。博主心情愉悦地等待着这批服务器的到达,并设计了相关的上架流程和自动化方案,最终进行了具体的实施操作。虽然在实施过程中遇到了一些问题,不过都是些不影响主流程的小问题,其中不乏在流程中忽略的点和未设计到的点,这些都是很值得事后思考和反思了。毕竟,这只是一次扩容,以后这种情况还会发生很多次。为了未来更美好,为了祖国更加繁荣昌盛,为了。。。就写一篇博文记录下本次服务器上架的事情吧!

阿西吧,不扯了,下面进入文章正题。

准备工作

在服务器到达之前,博主在忙现有服务器资源的使用情况统计和分析,写服务器采购计划,采购事宜以及机房新机柜的合同签订。

服务器资源的使用情况统计和分析方面

由于公司这方面卡的不是很严,因此就采集了目前服务器的CPU、内存和磁盘的相关数据指标,来反应当前服务器资源有多紧张。。。已经紧的不能行了。。。

服务器采购计划方面

首先针对当前架构要调整的地方和预期资源使用增长的估值来算出本次采购所需要的资源数量,然后根据资源数量换算成相关的服务器配置,最终得出服务器硬件的缺口。

采购方面

由于公司规模也不是很大,又是家互联网公司,也就没有走公开招标的路线。主要针对公司的几个常用供货商进行了相关的询价,然后针对架构进行对比,最终当然是选择了一家性价比最高的(必须是最便宜的)一家。

机房方面

提前通知了机房的联系人进行了新机柜需求的商榷。由于是老客户了,在价格方面也都没啥好再谈的。走走流程,合同签下,机房那边就提前把新机柜准备好了。老机柜到新机柜之间的网线也提前交代机房为我们铺设完毕。

在服务器到达之后,由于本次线上和线下环境资源都出现不足。因此,服务器分两个批次,一批到线上机房,一批到线下公司内部机房。到线上机房的这批,要提前和机房交代进行签收和上架操作。机房会协助我们记录号服务器的SN(Serial Number)号和mac地址,这些信息正常情况下会贴在服务器背板上。

由于这次想把服务器的上架流程打通,使整个流程尽可能的自动化,所以我和一同事就去了机房在现场协助上架。蛋疼的去早了,去了服务器才送达都还没拆了。。。协助机房人员把服务器拆出来,拿到机房里面进行人肉放服务器,人肉登记SN和mac进行CMDB入库操作。

开始实施

下面就要开始自动化装机操作了!

我先在一台服务器上部署了一套kickstart(使用cobbler也可以,cobbler只不过是把kickstart包了一层)。由于本次上架的服务器是一批虚拟化服务器和一批存储服务器,因此我针对这两种情况编写了2个ks文件。

新服务器要想到PXE装机这一步,首先做如下几个步骤:

1、开机按F2进入System Setup

       2、选择Device Setting下的Integrated RAID Controller xxxx Configuration Utility选项卡下,根据自己的服务器类型做适合级别的RAID阵列

       3、在IDRAC Setting下(即DELL远程控制设置)下,设置远程控制的IP和关联的网卡接口等

       4、在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这些还是需要有人来搞得。不过谁让我们付钱了呢强调,我这里可没有黑机房运维的意思。

问题总结

按照我上面聊得,好像没有啥问题似得。下面就到总结问题的时刻了。

问题如下:

1、在提采购计划时,忘了采购网线,导致取机房前一天匆忙联系采购

       2、去机房的时候,干活工具没有带齐(个人充电线忘记带了)

       3、服务器信息在录入CMDB的时候,个人原因少录入了2个字段的信息,导致2台服务器安装完毕之后没有主机名和IP

       4、没有将需要安装的软件包做本地yum源导致安装过程缓慢,以zabbix和puppet为主。。。

       5、由于疏漏。。系统盘大小为102400MB,误写成1024000MB,导致2台服务器进行了重装。。。

       6、在系统初始化时,忘记添加ssh端口的更改,导致服务器安装完毕之后,另写脚本批量从跑该作业。

       7、ks文件编写时,没有使用服务器做测试,导致在dell服务器上跑时,报了一个网卡选择的问题,最后谷歌之,添加了相关参数解决了该问题

阿西吧,好忧伤了。。。整个过程中,碰到的问题还是蛮多的。总结下来,没有技术性的难点和屏障,主要问题还是处在预案不够全面,实施的时候不够认真仔细导致。唉,是时候反思一波了。。。

目前,以上的问题已经被我修正。线下的这批服务器还没搞,下周去再搞就会很轻松了。

OK,本文就到这里,相关的实施文档,我会在这两天抽空写下分享给大家。

记一次服务器上架的总结和反思相关推荐

  1. vb.net服务器启动后cpu占用了70_记一次服务器被异常程序占用的解决过程(怀疑黑客攻击)...

    最近在跑实验,但是突然发现程序运行变慢,然后top命令查看程序运行情况,发现有异常进程,名字叫 bash,占用 2400% CPU计算资源. 刚开始怀疑是挖矿程序,因实验室网络IP为教育网公网,怀疑被 ...

  2. 记一次服务器本地Tomcat能访问,但远程访问不了的解决方案

    记一次服务器本地Tomcat能访问,但远程访问不了的解决方案 参考文章: (1)记一次服务器本地Tomcat能访问,但远程访问不了的解决方案 (2)https://www.cnblogs.com/li ...

  3. 记一次服务器负载飙高排查过程

    记一次服务器负载飙高排查过程 问题描述 在前天呢,我们公司的三台部署着php项目的线上服务器A.B.C,其中一台服务器A出现了CPU负载飙高,与其他两台服务器相差好几倍,并且在前天之前都没有出现过这么 ...

  4. 记一次服务器被挖矿木马攻击的经历

    背景 利用空余时间买了台服务器做了个小网站玩,今天访问了一下,加载巨慢,一看服务器运行情况,CPU飙到100%,按CPU消耗排序,排在第一的是一个名为"imWBR1"的进程,查了一 ...

  5. 记一次服务器“挖矿“处理

    记一次服务器"挖矿"处理 前言 排查 解决 前言 1.2020年以前, 很多测试环境服务器都是弱密 2.挖矿特点: (1)占用内存小,但是占用CPU比较高 (2)脚本运行很隐秘, ...

  6. 【实战篇】没有绝对安全的系统:记一次服务器沦陷后的分析

    [实战篇]没有绝对安全的系统:记一次服务器沦陷后的分析 https://www.sobug.com/article/detail/27

  7. 网页java挂挖矿_记一次服务器被植入挖矿脚本的解决过程

    记一次服务器被植入挖矿脚本的解决过程 删除挖矿脚本和对应的进程 找出并删除对应挖矿脚本文件 找出进程pid,并且kill掉 无法kill掉的是原进程的守护进程,原进程不在它也会自动关闭,所以不用管它 ...

  8. 妖神记自建服务器,妖神记 - 服务退换中心 - 腾讯游戏

    各位妖灵师大人: 自从 <妖神记>正式在中国启动测试至今,转眼间已经度过1年半的时间.在这段时间里,我们与众多玩家一起度过了难忘的日日夜夜.在<妖神记>的世界里,各位妖灵师大人 ...

  9. F5服务器上架文档,f5云服务器

    f5云服务器 内容精选 换一换 该操作只在跨AZ部署HA场景下才需要执行.EVS无法实现跨AZ磁盘共享,所以在跨AZ部署HA场景中,需要规划三台弹性云服务器,在每台云服务器上各绑定一块SCSI盘并配置 ...

  10. 创业记——个人电脑、服务器选型

    宏基比戴尔便宜 台式比笔记本便宜,宏基比戴尔便宜. 昨天接到老大的任务,让我和另外一个同事对公司个人用的电脑进行选型评估,要兼顾性能和价格,主要是开发用. 我和同事快速的达成了一致: CPU I5及以 ...

最新文章

  1. Spring Boot 实现接口幂等性的 4 种方案!还有谁不会?
  2. 可以永久改变你的编程技巧的40个Tips
  3. log4j 日志限制大小 拆分成30个 不按日期分日志 按大小拆分 按日期产生...
  4. condition框架设计与实现
  5. 122网络各层中的设备是什么以及工作原理
  6. Redis:一致性Hash算法
  7. opencv python3 找图片色块_如何使用OpenCV在Python中找到图像的平均颜色?
  8. java 7 40,Java 7u40 Java SE 8 sun.reflect.Reflection.getCallerClass
  9. stm32关定时器_STM32F103ZET6的基本定时器
  10. django之同源策略
  11. “背叛”乔布斯,库克做对了
  12. solr索引大小对比
  13. 计算机组成原理强制类型转换规则,计算机组成原理——浮点数加减运算强制类型转换...
  14. 阿里云服务器如何选择操作系统?操作系统选择方法
  15. Vivado HLS介绍及IP核的设计流程
  16. 快速排序的三种分区方法(整理)
  17. 静态代理,JDK动态代理,Cglib动态代理详解
  18. 人脸识别SVM算法实现--参考麦子学院彭亮机器学习基础5.2
  19. 会计学计算机技能,财经会计专业,需要懂IT技能吗?编程呢?
  20. 杭电(杭州电子科技大学)操作系统实验二:Linux内核模块编程

热门文章

  1. NSObject的hash方法
  2. 学习笔记-AngularJs(三)
  3. sharepoint 2007,sharepoint 2010网站的备份还原
  4. 适应adblock plus 规则的简单正则表达式匹配
  5. 一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目
  6. java struts xml文件设置----自定义日期转换器(局部,及全局类型转换器类)
  7. IOS7开发~Xcode5制作framework
  8. 079 pandas模块
  9. 嵊州D1T1 总统先生,一路走好!
  10. jumpserver跳板机docker安装小小趟坑