To clone or to automate a system installation?
- by Shtééf
Let's say you're setting up a cluster of servers performing the same task. Or say you're just setting up a bunch of different servers, but you expect to use a base configuration on all of your servers.
Would it be better practice to create a base image and clone it, or to automate the installation and configuration?
I occasionally end up in this argument with my boss, in situations where we're time-pressed. When he sees me struggle with perfecting the automation, his suggestion is often to clone the entire disk to the other machines. But my instinct has always been to avoid cloning.
This is mostly from an Ubuntu perspective, but the question is fairly general. My reasons for avoiding cloning are:
On a typical install, even if it's fresh, there are already several unique identifiers installed: filesystem UUIDs, SSH host keys, among others. These would have to be regenerated.
Network needs to be reconfigured for each clone. This would need to be done off-line, of course, or the settings will conflict with other machines on the network.
On the other hand, some of the cloning advantages are quite clear as well:
(Initially?) less effort required than automating configuration.
Tools exist to quickly address (some) of the above disadvantages.
(I can see right through my own bias there.)