Question

Manual setup + cloning vs. Puppet/Chef/Ansible/Salt

I find it much easier to setup a server once manually with all the configuration and software needed, save it as an image or snapshot, and then as more servers are needed, clone the image/snapshot and deploy my app’s code.

I understand the basics of configuration management tools but none in particular. Am I doing myself a disservice by not using Puppet/Chef/Ansible/Salt?

I’m one guy and don’t have a lot of time to learn a big tool which I’m clearly trying to avoid.

Thanks

Show comments

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Hi John,

My policy is to keep it as simple as possible when approaching any tool. I’ve tried many orchestration tools but never felt at home with any of them.

Personally, I use and love Ansible. It’s simple and powerful enough for me to feel right using it.

There is nothing wrong with your method, ie. make a snapshot, clone. Rinse and repeat. I used to do the same thing.

Where any of the orchestration tools shine are slightly more complex scenarios or really time intensive repetitive tasks.

For example, I have a client that have an ecommerce application running on DO with the following setup:

  • 1x Load balancer node - nginx
  • 2x applications nodes - nginx + php-fpm
  • 1x Db server running Percona Mysql
  • 1x staging server

Normal monthly maintenance for me is to do the following:

  1. Disable New Relic/Pingdom monitoring.
  2. Update the staging server to see if anything major broke.
  3. Put app into maintenance mode which requires setting Nginx load balancer to point to static site.
  4. Take 2x app + 1x db server offline and make snapshots. (Always backup!)
  5. Once backed up, update the systems.
  6. Test the applications.
  7. Upgrade load balancer
  8. Put the live site back online.
  9. Enable New Relic/Pingdom monitoring.
  10. Crack open a beer for a job well done.

Doing this manually, can be time consuming so an orchestration tool like Ansible lends itself well to automating this.

I can run a single command, to do all of the above in a scalable fashion. Now imagine if the setup involved 20 servers.

Hi John! If you are interested in a simple tool that will ease the administrative overhead of using something like the CM tools you mentioned, you might want to checkout ®?ex. It will allow you to do many of the tasks other CM tools do, but without client installs, crazy configuration, etc. It does not require a software to be installed on the client machines as it uses SSH. Let me know if you have any questions! -Cooper Thompson