Saturday, February 15, 2014

Server Provisioning Tools


What's Ansible?

per ansible:

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.

With vagrant, bringing server up from scratch and running with same state was just ridiculously easy.

Why did I choose Ansible over other tools?

My qualification and situation when I chose Ansible:


I am in an ultra time crunch right now but need to have provisioning tools up and ready in a few days
I am a developer and not full time sysadmin but I have administrated servers for last ten years mainly software level and nothing network level
I am proficient in shell and python

Process of selecting tools:

Quick Lookup: according to this article, SaltStack is rated #1 then puppet, chef and ansible... but ansible is simpler tool than puppet or chef. I like simple than complex...

Attempt 1: Last time I went to Django Conf, peopler were raving about SaltStack. So that was the very first one I tried. Installing software was easy. Test against localhost was successful. Attempt to talk to Server was not so successful and error wasn't verbose enough (I probably didn't know how to make it verbose) but I quickly moved off to seek tools that give me obvious error message.

Attempt 2: So next simple tool would be ansible. Yes. things are up and running in matter of 10 min. Amazingly easy to use. With -v option, error is verbose and clear and even give me tips how I may fix it. Plus amazing community. I posted question and got an answer within a few hours and solved the problem I was stuck on.

Our Ops wanted to use puppet because of robustness so now I am giving try puppet

Attempt 3: Installation of regular puppet required me to install 3 sets of DMG for osx whereas ansible, you just need pip install of a few packages.

Standard puppet seems to be fine. pp file extension was recognized by my favorite IDE Pycharm so I was pretty happy about it.

We wanted to bring up server (not just provisioning) with puppet which requires enterprise version. Ops setup PE (puppet enterprise) server but I have no idea where I go from here... in order to issue "puppet node_vmware create"

This enterprise version was confusing (for Unix - i use osx - 3.7GB worth of software is needed whereas for Linux you will need 300 to 400 mb of software)

So I just gave up until someone who have done can give me tip... (including watching youtube video)

Until then, my tools of choice had to be ansible with my limited knowledge (which I am very happy with)

I am planning to study puppet for next few weeks and post update. Also I will post some ansible tips.