An Ansible Tutorial

  • I love Ansible.

    What's scary about shell scripts is the lack of idempotence (if you accidentally run them twice, things break).

    What's annoying about chef/puppet is the bootstrapping overhead -- you can't start from a blank slate system, because you still need to install puppet-client or ruby+dependencies. So now you're paying to store a bunch of semi-pre-configured images with some out-of-date ruby gems or an old puppet-client. If you want to start from a blank image, then you're using shell scripts to install the toolchain that will let you avoid using shell scripts (or worse - doing it by hand!).

    Ansible is idempotent ssh + shell scripting, so it solves the 'blank slate' problem nicely. It only requires python, which is bundled by default on ubuntu servers.

  • This weeks edition of Servers for Hackers goes from using ad-hoc commands (shell and other modules), to Playbooks and finally abstracting everything out to a Role with templates, files and variables.

  • I clicked on this thinking it would be something involving the ansibles from the Ender's Game series which allow instant communication across large stretches of space. I should probably take my lunch soon.