我正在寻找一个工具来帮助pipe理各个系统之间的依赖关系。 我的意思是硬件(主机)以及软件系统,例如主机X上的服务A依靠主机Y上的服务B来运行。 目标是能够告诉我什么时候停止工作,当我拉一个插头。 我主要对pipe理服务依赖感兴趣,但是networking应该以简化的方式包含在内。
我想像下面这样的规则系统(有很多标准服务的预定义规则):
理想情况下,我可以“虚拟”拉动邮件服务器的插件,依赖pipe理系统会告诉我会受到什么影响。
请注意,我正在寻找一个或多或less简单的方法,仍然可以pipe理。 我不想写我自己的模拟软件,我不希望这个系统pipe理低层次的依赖(例如软件模块/库依赖)。
这样的系统是否存在? 如果是的话:这些系统叫什么名字?你知道什么样的实现?
编辑:也请指出解决更大的问题,但提供类似的一部分的解决scheme。 也许我只是在这里思考而已,你可以帮助我去思考。
听起来像你正在描述一个正确实施的CMDBconfigurationpipe理数据库,它不仅仅是一个资产注册 – 它应该能够显示系统和系统组件之间的依赖关系。 他们往往是昂贵的,他们通常作为ITILpipe理套件的一部分出售。
当然,这只是一个图表(在Comp Sci的意义上),所以我相信你可以用一堆文本文件和一些Unix CLI工具来做同样的事情。 问题在于在事情发生变化时保持更新,这就是为什么在理想的情况下,您有一个发现工具来填充它,并将其与变更pipe理stream程联系起来。
可能不是一个实际的build议,我不知道如何可以pipe理,可能与一些编码…
无论如何, make是一个依赖pipe理器,尽pipe针对不同的用途。 但编译单元和服务器只是资源…所以你可以用一个文件名来模拟一个资源。 如果文件存在,则资源已经启动,否则就会closures。 而运行make会告诉你什么是受到影响的…例如,一个像这样的Makefile可以诀窍(这是GNU make ):
%:: touch $@ resource_A: resource_B resource_C resource_B: resource_C resource_D
您可以省略不依赖的资源。
那么这就是你得到的:
$ rm resource_D $ make touch resource_D touch resource_B touch resource_A
而且你知道哪些资源受到影响。