Is there a tool that handles generic migration of config? For example if I have httpd, postfix, MySQL and users and groups data, is there a tool that can extract the config data for each service so that I can apply it on another system.

Generally speaking is there a tool (or strategy) that handles this for all services?


One the popular accepted solutions to this problem is using a configuration management system. Some examples are puppet, chef, and saltstack.

These systems allow you to define exactly what a server (or in some cases an application stack) looks like. Using these tools you define a server's state, including its configuration.

Here is an example of a very basic apache configuration using Puppet with the puppetlabs/apache module:

class { 'apache': }
apache::vhost { 'first.example.com':
  port    => '80',
  docroot => '/var/www/first',

This simple bit of puppet code ensures the following:

  • Apache is installed on the server
  • The webserver is running and listening on port 80
  • Contains a vhost with the docroot /var/www/first

You can then apply this manifest to many servers in a cluster. There are many reasons for the movement towards this type of configuration instead manually copying configuration files. It treats your server configuration and infrastructure in a very similar manner to how you treat code.

  • The configs for these systems are often stored in version control. This allows you to easily view changes, rollback, etc
  • Your server states can be unit tested and acceptance tested
  • Shared modules work like code libraries - you do not need to reinvent the wheel
  • Your servers are provisioned in a way which is repeatable (and more reliable)

Many consider use of these systems a big part of the devops movement.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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