当安装新服务器时,我通常会忘记服务器实际工作所需的东西。 我想在启动服务器之前首先进行一些自动的飞行前检查以注意缺失的function,并让服务器上的活动用户运行。
比方说,我运行一个应用程序服务器池,在负载均衡器后面使用像Tomcat或PHP这样的平台。 该服务通常需要以下几件事情:
我假设在大多数情况下可以编写unit testing,并在安装后在每台机器上运行它们,但是我更愿意使用更具体的工具来完成这样的任务,也许用一种特殊的类似shell的语言来编写testing(鉴于不同的工具是必要的testing一切,这将涉及运行Perl脚本,Java程序,检查文件,权限,在confic文件中的行等)。
我应该补充一点,我不希望能够解决缺失的项目,我只是想检查是否需要从操作的同事进行额外的更改。
我们这样做的方式是使用CFengine(但是Puppet也可以),根据集中configuration来configuration各个节点。 CFengine会按正确的顺序执行机器的正确configuration,并继续这样做,例如,如果进程停止,进程将被重新启动。
在所有节点上,脚本可用来检查许多事情(中央存储器上的文件是可读的,可以打开到MySQL集群的连接等)。 此脚本被loadbalancer用作健康检查:只有当所有检查都通过时,节点才会返回loadbalancer期望的值,并将其标记为“up”并允许处理stream量。
您需要logging您的构build过程,然后才能编写脚本来testing新系统的“准备好”。 stream程文档将为您提供您要validation的核对清单以及每个服务器的一致构build。 Cfengine和木偶是自动化构build的好方法,但是使用它们,你需要一个需要configuration的东西的列表。