Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am new in using virtualization technologies. I have read about Puppet and Foreman. If I am not mistaken, these software are used to automate the process of installing and configuring servers, for both real machines and virtual machines. An example is shown in this video.

Refer to this website, in a cloud computing environment, we can create VM template and use it to deploy many VM with similar configurations. A VM template is a master copy of a virtual machine that can be used to create and provision virtual machines.

Refer to the Youtube video mentioned above, if we use Puppet and Foreman to install and configure VM, it seems that we need to repeat the installation and configuration process in all VM. Why can't we just use VM template?

share|improve this question
add comment

2 Answers

up vote 3 down vote accepted

Scalability and ongoing management are the main considerations...

A VM deployed from a template is just that; a facsimile of a master VM. Some items can be customized in a limited manner, but it's not an ideal approach. What about network settings, environment settings, application configuration, system roles? How about even basic items like setting the hostname or related IP settings?

What if you need to make a blanket change to all of your deployed virtual machines?

Coming from the VMware world, the VM cloning process isn't particularly-quick in most setups. For a Linux system with a net-enabled installation process, building anew is typically faster than cloning from a template.

There's also a case for using both approaches. Suppose you have a highly-customized template... You can use the virtualization system's cloning abilities to deploy, but leverage Puppet to fine-tune the install.

share|improve this answer
add comment

Each VM is unique, so you have to deploy each VM separately. Puppet and Foreman are (mainly) targeted for a lifecycle.

If you just want to get fast starting machines from scratch to do some testing (and perhaps after this dispose), you'd perhaps would like to have a look at vagrant

What do you really want to achieve?

  • Try to get some automated rollout for production servers? -> foreman & puppet
  • Using VM for an automated test-environment -> vagrant
share|improve this answer
add comment

Your Answer

 
discard

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.