ansible -a 'uname -n' -o -u iweb -s 'b*web1'
puppet-style invoation
playbook example
- hosts: all
tasks:
- name: disable auto reboots
lineinfile:
dest: /etc/apt/...
state: present
regexp: ^Unattended...
xyz:
Write own modules (in any language, python most common). Example given, looks pretty easy.
Can use jinja template in yaml
...
host: {{ item.host }}
name: {{ item.user }}
password: {{ lookup('hash', item.user) }}
priv: {{ item.database }}.*:ALL
the hash lookup is custom - generate password from secret
Dependencies:
Can run ansible through API if you want, but command line tool is easy. Can set up inventory, callbacks, choose which yaml file ... Could then do this in a web app (but want to run outside of the rendering thread - eg celery)
Very responsive community. iweb ran HEAD for a while - vagrant is useful for running code against to test. It was worth throwing away 3-year old puppet set up.
key management, user management ...