[sdnog] help choosing configuration management utility

Jaco Engelbrecht bje at serendipity.org.za
Mon Mar 9 18:03:48 SAST 2015

Hi Samir,

I'd definitely suggest you invest some time to find the language (tool) that works best for you (and your team!) as you will be spending a lot of time initially getting it all setup, and then having to maintain it.  By language I do not mean the programming language it's written in (Ruby, Python), but the DSL that the tool itself provides.

Using any of these tools (Puppet, Chef, Salt, Ansible) however is a step in the right direction.

I've been using Puppet since ~2007 for fairly large estates in mostly ISP environments.  What makes Puppet great today?  The community (people) to get help and it's vast amount of ready to use modules on the Puppet Forge (like the Apple App Store, just free!) and for me - the DSL (language).

Majority of the modules support both CentOS and Ubuntu and majority of the use cases of how you want to configure the software is likely to be already implemented.  Modules are also being updated and improved all the time, and if you come across a feature or functionality that you want to add, you can either ask for help to implement it (community) or do it yourself and submit a patch for the module.  This for me is great, I get to spend more time on other more exciting and interesting challenges that's specific to my customers, and that's where you add value!

To get an idea of how each of the languages let you configure a simple web server, take a look at the following modules to configure the Apache web server (something which I imagine you'll need to do), review the following module implementations:

 http://docs.ansible.com/list_of_web_infrastructure_modules.html (and in particular the Apache module) (Ansible)
 https://forge.puppetlabs.com/puppetlabs/apache (Puppet)
 https://supermarket.chef.io/cookbooks/apache2 (Chef)
 http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.apache.html (Salt)

What makes most sense to you? :-)

Some links that might be of interest for Puppet:

 https://forge.puppetlabs.com/ - Puppet Forge
 https://puppetlabs.com/download-learning-vm - PuppetLabs learning VM with a tutorial to guide you through the concepts

Another good blog post on Puppet vs Chef vs Ansible: http://probably.co.uk/puppet-vs-chef-vs-ansible.html

Which ever tool you decide to implement, you will need to:

 - invest time to keep it up to date (current)
 - be sure to make all changes in the DSL for the systems under its management and not to make changes on the servers itself (otherwise, why bother?)
 - use Git as source control backend for your code.

Also, on the topic of OpenStack, I'm not that familiar with it, but this is certainly a good read: http://www.datacenterknowledge.com/archives/2015/02/23/openstack-vs-cloudstack-the-platforms-and-the-cloud-apis/ as well as this presentation http://www.slideshare.net/bizalgo/cloudstack-vs-openstack-vs-eucalyptus-iaas-private-cloud-brief-comparison.  If I had to build a IaaS infrastructure tomorrow (I've built a European wide VDC IaaS offering in the past), I'd look at CloudStack if I had to choose from the open source ones.  I'd also advise to start with the business requirements first, and then find a technical solution that fits the business requirements as closely as possible. :-)

Good luck, and let us know what you decide to implement!


----- Original Message -----
From: "Samir S. Omer" <samir.saif at sudren.edu.sd>
To: sdnog at sdnog.sd
Sent: Thursday, 5 March, 2015 05:46:14
Subject: [sdnog] help choosing configuration management utility

Dear SdNOGgers, 

I'm considering deploying a Configuration Management Utility in my network. 
which software do you recommend for me (Puppet, Chef, Anisble) ? 
also, is there any other factors I should consider before deploying the utility? 

on other regard, I like to experiment with OpenStack can you point me to some good resources? 

Sdnog mailing list 
Sdnog at sdnog.sd 

More information about the sdnog mailing list