Linux – Config deployment on multiple servers

configurationdeploymentlinuxweb-server

I have multiple servers in WEB cluster (identical configuration for all of them, despite the IP)

How do you deploy changes in configs on multile servers?

I make the new config, then create config per every server (placing correct IP), and next:

  • upload them on every server, replacing old ones (rsync over ssh)
  • set on every server a job which reloads webserver at the same time (servers use ntp). – this done by issuing commands by script (to save time for logging in)
  • before adding a job for server reload – there's checksum test of the config on the server) – an a notification in case of fail

How do you see such method?
What should be the "professional way 🙂 ? (I don't say my way doesn't work… it works and saves my time not used for logging on every webserver.)

Regards,

Best Answer

You can use any of the modern change automation tools (Puppet, Chef, cfengine, bcfg2, and so forth) for this. Any of them can deploy files, and restart services when files they manage are modified.

I've had great success with Puppet over the last few years in several environments.

Once you start using the tool for everything, it has the added benefit of documenting both your process and infrastructure.

Back it by a versioning tool such as git or svn and now you have .. a versioned infrastructure.