背景
我们设置了非常大的系统,其中包含许多不同类型的服务器、交换机和路由器。然后将这些系统运送到不同的位置,并在到达时准备就绪。
我们为安装的许多不同区域编写脚本以提高效率,但最近决定尝试将至少 90% 的过程自动化。
目前,在系统到达目的地后,用户将按照我们编写的一组程序来定制应用程序或执行任何需要的“恢复”。这可能是一个漫长的过程——有时需要 500 步。通常,系统被擦除后,流程会重新开始,这就需要在职 IT 人员通过程序重新设置所有内容。
问题
这个过程是一个艰苦的过程,尤其是当必须检查和重新检查程序时。
我们考虑过的选项:
脚本 脚本不会特定于任何一个系统,这将允许我们根据系统的位置进行适当的更改。
根据脚本的开发,可能很难进行更改,开发脚本的时间很长,如果我们继续(工作方面),其他人可能很难选择脚本,并且脚本的执行时间也很长。
模板 从一个工作基础副本创建一个模板,所有已安装的组件都准备就绪。例如,如果我们使用 Jabber 服务器,所有正确的设置都已经在模板上设置,并且将启动一个脚本以在数据库服务器上创建正确的表和数据库设置。模板启动后,它将连接到 SQL 服务器并准备就绪。
这里一些可预见的缺点是模板的潜在大小、存储和传输图像所需的空间。如有必要,脚本将继续执行特定于该位置的任何操作。
在 ServerFault 上的大量经验中,有人对此有任何经验吗?最实用、最有效的方法是什么?
我的经验表明,脚本将是实现这一目标的方式。我对此的主要观点是,如果您想更新给定组件的版本,替换安装程序可执行文件和应答文件比重新生成“原始母版”以用作模板要容易得多。如果我更多地了解您提到的脚本编写的缺点,我的观点可能会改变,但就目前而言,就是这样。