我是如何一步步把客户的两台服务器给弄崩的

写在之前:

服务器为CentOS7,博主不是运维,是个java开发。小菜鸡,今年刚毕业,linux命令只限于会发布tomcat。如果你看不懂下面这个命令,那么这篇文章可能对你有所帮助,避免踩坑。当然,深谙linux系统特性的大佬就不用往下看了,只是几个菜鸡互啄罢了。

rpm -Uvh ./*.rpm --nodeps --force

背景:

客户给了我们两台24核128G的内网服务器,通过teamviewer连接跳板机(Win 7)进入内网服务器,内网服务器用VmWare分成了若干台不同作用的虚拟机。接到任务,往虚拟机上搭建项目环境:mongo + redis + tomcat + JDK + elasticsearch + rabbitmq。当然没有每台虚拟机都装完整的环境。其它略过不讲,只讲搭建rabbitmq的时候是如何把服务器弄崩的。先来几张图片,求助搞大数据运维的同学的聊天记录:

我是如何一步步把客户的两台服务器给弄崩的_第1张图片我是如何一步步把客户的两台服务器给弄崩的_第2张图片我是如何一步步把客户的两台服务器给弄崩的_第3张图片我是如何一步步把客户的两台服务器给弄崩的_第4张图片

还有一台就没有截图了,记得调用系统命令提示lib.so.1不存在。。。

按照多年使用windows系统的直觉,和我网管朋友给我传授的经验——没有什么问题是重启电脑解决不了的!

哦豁~这在linux系统并不管用,结果就是:一台无法重启,开机卡在黑框界面;一台无法关闭,进入vmware管理页面也关闭不了。


ok,开始讲正文:

安装过rabbitmq的都知道,rabbitmq嘛,得先安装erlang语言。以前我安装erlang都是参照这位大佬的博客,Centos6.5安装erlang过程及问题总结。erlang有以下的依赖组件:

我是如何一步步把客户的两台服务器给弄崩的_第5张图片

解决办法很简单,安装一下依赖就好了 yum install **。事情没有那么简单,这是内网服务器,上不了网啊。怎么办,自己下载rpm包安装呗。c++ compiler很简单,下载后 rpm -ivh xxx.rpm 就好了。万恶的是OpenSSL,截一张大佬的博客,OpenSSL需要哪些依赖,rpm安装openssl-devel:

我是如何一步步把客户的两台服务器给弄崩的_第6张图片

哦豁~~一个个下载呗,用到了同事给我的阿里镜像库http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/,阿里上面的包大部分都比列出的版本要高。那就用最新的呗,下载安装!


万恶的先卸载再安装:

安装过程中发现,安装A包,提示安装错误 "XXXB.1.31包 被 A包需要",然后用rpm -qa | grep XXXB 命令发现是已经安装了的,只是版本过低(比如为XXXB.1.25),怎么办,先卸载再安装。用从网上找来的命令:rpm -e --nodeps XXXB.1.25卸载旧版本,再rpm -ivh XXXB.1.31.rpm安装新版本。前面几个都很顺利,安装成功。到安装libss-XXX.rpm包的时候,提示zlib-XX依赖未安装。

那就卸载安装呗,先把旧的zlib包找出来,执行这条语句:

rpm -e --nodeps zlib

诶,等等!!这条语句好像是卸载,而且我没有指定是哪个版本。手残了。。。心想着没事,反正安装新的了, rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm,执行命令后报错:XXXX lib.so.1 XXXX not found。百度一下大意是:动态链接库找不到了。一顿操作还是报错而且系统命令无法使用,无果,搞第二台服务器。

第二台倒没有手残,但是当卸载安装新版本的libselinux-2.5-14.1.el7.x86_64.rpm,报错提示:XXXX libselinux.so.1 XXXX not found。系统命令又用不了了,关闭ssh重新连接,两台都连接失败。至此,两台服务器都崩了。


看到这里,有人会问了,你们公司的运维呢,不好意思,没有。

没办法,跑去和技术经理老老实实地说了,经理在vmware管理页面想关闭两台虚拟机重启,失败。。虚拟机删除也删除不了。。。

事情总得解决,经理又新建了一台虚拟机给我们造,一定要把mq给安装咯。

诶嘿~第三台服务器继续造,可劲的造。


第三台服务器:

但也不敢继续造了呀,卸载了之后安装新版本报错啊。去百度吧,centos7离线安装openssl,终于找到一位大佬的博客:CentOS7 离线安装gcc/pcre-devel/openssl-devel/zlib-devel,里面就一个命令(也就是本文最开头的命令)——把当前目录下以.rpm包结尾的文件安装了,--nodeps:安装时不检查依赖关系,--force:即使已有不同版本,也强制安装。

舒服呀~openssl安装好了,接下来就编译安装erlang,接着rabbitmq,水到渠成。

 

最后列出个openssl所需要的依赖包吧:

e2fsprogs-1.42.9-13.el7.x86_64.rpm

e2fsprogs-devel-1.42.9-13.el7.x86_64.rpm

e2fsprogs-libs-1.42.9-13.el7.x86_64.rpm

keyutils-1.5.8-3.el7.x86_64.rpm

keyutils-libs-1.5.8-3.el7.x86_64.rpm

keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm

krb5-devel-1.15.1-34.el7.x86_64.rpm

krb5-libs-1.15.1-34.el7.x86_64.rpm

krb5-workstation-1.15.1-34.el7.x86_64.rpm

libcom_err-1.42.9-13.el7.x86_64.rpm

libcom_err-devel-1.42.9-13.el7.x86_64.rpm

libkadm5-1.15.1-34.el7.x86_64.rpm

libselinux-2.5-14.1.el7.x86_64.rpm

libselinux-devel-2.5-14.1.el7.x86_64.rpm

libselinux-utils-2.5-14.1.el7.x86_64.rpm

libsepol-2.5-10.el7.x86_64.rpm

libss-1.42.9-13.el7.x86_64.rpm

libss-devel-1.42.9-13.el7.x86_64.rpm

openssl-devel-1.0.2k-16.el7.x86_64.rpm

pkgconfig-0.27.1-4.el7.x86_64.rpm

zlib-1.2.7-18.el7.x86_64.rpm

zlib-devel-1.2.7-18.el7.x86_64.rpm

啊,天下太平,完~

你可能感兴趣的:(linux)