Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top


We setup very large systems which consist of many different types of servers, switches, and routers. These systems are then shipped out to different locations and are turned on ready to go upon arrival.

We script many different areas of the install to increase our efficiency but recently have decided to try an automate at least 90% of the process.

Currently, after the system arrives at its destination, users would follow a set of procedures that we have written to customize the applications or do any "restores" that would be required. These can be a long process - sometimes 500 steps. Often times the system is wiped and the process begins again which requires the on-staff IT to move through the procedures to set everything up again.


The process is a grueling one especially when the procedures must be checked and re-checked.
The options we have considered:

Scripting The scripts will not be specific to any one system which will allow us to make the proper changes depending on the location of the system.

Depending on the development of the scripts it may be difficult to make changes, time to develop scripts is substantial, if we move on (job wise) others may have a difficult time picking up the scripts, and execution time for the script.

Templates Create a template from a working base copy with all the installed components ready to go. For instance, if we a Jabber server all the proper settings would already be setup on the template and a script would be kicked off to create the proper tables and database settings on the DB server. Once the template is up it will be connected to the SQL server and ready to go.

Some of the foreseeable disadvantages here are the potential size of the templates, space required on storage, and transporting the image. Scripts would remain to do anything specific to that location if necessary.

In the vast experience of those on ServerFault, does anyone have any kind of experience with this? What is the most practical and efficient way?

share|improve this question
Why not both? We have base templates that get 'chef'ed on first boot. – Chopper3 Jan 23 '13 at 19:01
@Chopper3 That is what we are currently considering, a mix of both. However we cannot use programs such as Chef – JMeterX Jan 23 '13 at 19:55
up vote 1 down vote accepted

My experience says that scripting would be the way to go here. My main perspective on this is that if you wanted to update the version of a given component, replacing an installer executable and answer file is tremendously easier than regenerating a "pristine master" for use as a template. My opinion might change if I knew more about the downsides to scripting you mentioned, but for now, that's where it is.

share|improve this answer
The anticipated time to create all the necessary scripts is 6 weeks of work. Average execution time for scripts highly depends on what it is we are scripting but up to as much as an hour without wait time for tasks to finish. If we have a large amount of scripts and the creators were to leave those who take over will need to learn the scripts, languages (if necessary) and gain the understanding quickly. – JMeterX Jan 23 '13 at 19:33
That lead time sounds about right to me for most scripts like this. As for turnover - well, that's something that all companies have to deal with. It's (IMHO) part of doing business. – John Jan 23 '13 at 19:37
Yup - making sure that usable documentation and cross-training is part of any product release can help reduce the turnover cost. – mfinni Jan 23 '13 at 19:57

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.