我是一家小公司的全栈工程师,负责与技术相关的一切,从基础设施到代码。
几个月前我到了,很快就意识到有很多问题,既与代码相关,也与基础设施相关,因为自从第一个创建整个基础设施的技术人员离开后(2 年),公司没有进行任何更新或升级前)
由于我计划留在公司,我知道升级服务器是强制性的,但基础设施不是我的强项,所以我正在寻找您可以在这里给我的任何建议。
由于问题相当广泛,这是我将如何缩小范围,这就是我现在所拥有的
Ubuntu 16.04.5 上的 3 台服务器:2 台作为后端,一台作为负载均衡器 服务器是 mongoDB 集群的一部分(如果重要的话) 目前所有这些服务器上使用的 apache2 版本是 2.4.18(建于 2018/06/ 07) 使用 Ansible 将应用程序部署在服务器上,这是一件好事。
但是很多 2 年前设置的东西现在都坏了,比如 Nagios、Jenkins 或 SonarQube,问题是没有关于如何/何时/为什么设置这些东西的文档。
所以对于这个问题:
我正在研究清理无用的库,修复/安装所有必要的监控工具,通过升级等方式修补漏洞……但不会破坏服务器上运行的应用程序。
你们中有人遇到过类似的情况吗?你有什么建议?您是否有任何有用的指南/工具*命令可以通过/使用?
PS:我知道这个问题很广泛,因为我被这个主题压得喘不过气来,我还不知道如何将它正确地分解成简洁的问题,但如果我能得到一个指向全球方向的答案,我会可能在每个问题上写下更精确的其他后续问题。
好消息是该操作系统仍受支持,但时间不长(Ubuntu 16.04 将于 2021 年 4 月结束生命周期)。
我首先要确保所有系统都是最新的。
然后我会确保我有一个有效的备份,包括恢复程序的测试(理想情况下这是第一点,但是在没有更新的 2 年后,您将无法轻松安装备份解决方案的可能性很高)。
接下来,我会检查每个服务(Nagios、Jenkins 等),检查它的状态,决定是否要继续使用它,或者是否要切换到我更熟悉的东西。如果是前者我会修复它,它是后者(或者如果它处于非常糟糕的状态)我只需使用当前版本的 Ubuntu 重新安装系统并从头开始重新安装我需要的东西。
之后我会开始将系统更新到更新版本的操作系统,最好是 20.04。
一些需要计划的事情:
如果可能的话,拍摄服务器的快照,启动您最喜欢的虚拟化软件,并首先尝试对其进行任何升级。
您说其中一些是通过 ansible 安装的。假设你可以得到一个 vm 来测试,试试 ansible 代码(
--check
首先)