本文共 1166 字,大约阅读时间需要 3 分钟。
生产环境即是运行用户正在使用的系统环境。有时,一些粗心的用户会把他们的生产环境交给我们,希望我们来进行变更操作,如部署Agent等。但我们实际上并不清楚这些生产环境有多重要,有时也不清楚我们的变更操作有多危险,其中一些操作很可能导致机器宕机,出现重大生产事故,让用户受到重大损失。
所以我们对生产环境需要敬畏,本文罗列出一些禁忌操作,需要大家一定要避免的。系统文件包括:
系统文件的替换隐含了极大的风险,以下是运维中发生的一个实际故障:
在部署Agent时,由于执行时报libc.so相关的错误,操作人员就从其它机器复制了一个libc.so到目标服务器。
由于libc.so替换,导致依赖libc.so的所有程序,包含ksh、sshd等系统程序均无法启动。由于这台AIX服务器已经几年没有重启过一次了,经过协调,大家在承担极大风险的情况下,使用光盘引导并恢复libc.so后才恢复了系统。
包括:
这些操作与替换系统文件的风险是一样的。以下也是一个我们操作导致的实际故障:
在部署Agent需要的ipmitool命令时,由于需要一些依赖的rpm包,操作人员就将相关的包复制到目标机器并部署。
由于包中包含了ssl等系统包,导致目标机器上的跳板程序(依赖旧版本ssl包)无法启动。最后经过商务协调,用户自己重装了跳板机来恢复。
此案例中,尽管操作人员已经在公司内部作过同样的测试并部署成功,但依然在生产环境中导致了故障。因为生产环境确实有其历史,其中的细节是我们无法在短时间内了解并评估出风险的。
所以对生产环境要敬畏。
这个操作的危险性在于,有时我们会疲劳驾驶,我们以为我们在做什么,但实际上只是机械性的快速敲打键盘,结果一不小心就输入了:
rm -rf / <回车>
这样的操作。
2017年初的Gitlab误删300GB的事故,就是疲劳驾驶rm引起。在生产环境中,看似无害的重启系统,实际上风险很大。最好清楚这些系统的实际情况,并与有关方面沟通。
拒绝他人提供的root用户,可以杜绝自己背锅的可能性。不使用root用户,就避免了无意的禁忌操作。
运维程序不同于生产系统,它是辅助系统,所以我们部署的运维产品或工具,都应以绿色软件的思路开发与部署,避免对系统产生变更。
转载地址:http://mfymo.baihongyu.com/