![如何验证(Linux)服务器上的安装?](https://linux22.com/image/785928/%E5%A6%82%E4%BD%95%E9%AA%8C%E8%AF%81%EF%BC%88Linux%EF%BC%89%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E5%AE%89%E8%A3%85%EF%BC%9F.png)
问题:
首先要说的是,这是为软件公司开发的,而且是内部的。这些人都不是“用户”,他们都是员工。
- 我们在服务器上进行测试,包括升级现有安装以证明升级过程有效等。
- 人们有时会登录这些服务器来测试更改。
- 他们没有将其恢复到预期的生产状态,这意味着环境现在被认为是“肮脏的”。
- 检查这一点远不止“这个应用程序是否安装正确”。这更多的是为了确保以下内容(作为一个子集)与生产相匹配:
- 网络接口和路由
- 配置文件
- 部署到服务器的包
- 服务器上的脚本
- 虚拟机配置
- 磁盘使用情况、权限、位置等。
- 我还没想过的事情
- 检查这一点远不止“这个应用程序是否安装正确”。这更多的是为了确保以下内容(作为一个子集)与生产相匹配:
- 需要花费时间和金钱来查找为什么行动没有按预期进行。
- 对于那些建议使用 CI/CD 来解决这个问题的人(我是它的忠实粉丝,并且同意它在所有其他用例中的做法),“擦除并重新部署”大约需要 4 个小时。
问题:
- 有没有一种方法可以轻松验证安装是否“正常”?
- 请注意,对磁盘进行 md5summing 之类的操作不会有帮助,因为磁盘上有时间相关的文件。
- 请注意,如果有人对服务器进行胡乱操作,只要他们能恢复原状,我就不会在意。这意味着文件时间戳对此没有帮助。
在我开始编写一个对所有“必要”文件进行无尽哈希检查的脚本之前,我至少会错过其中的一两个,而有人会自然地更改那些文件,而且只更改那些文件(所有愤怒的表情符号),有没有更好的方法可以做到这一点,我可以将其附加到构建或升级脚本中,以便让我知道安装是否可靠?
答案1
要验证安装是否“正确”,您可以尝试 AIDE。https://aide.github.io/
根据我的经验,需要进行大量配置才能识别应忽略的文件/路径,因为这些文件/路径经常会发生变化,而且在正确设置所有设置之前,您会得到很多误报。但这绝对比尝试使用自己的系统完整性检查器要好,因为后者会遇到同样的问题。