Ansible: A Puppet User's Perspective (DevOps Sydney, 2014)
A talk given at Devops Sydney in September 2014, explaining Ansible to Puppet users, with a divergence into patterns and problems you can expect to encounter with each.
needs to be a role that you then stick together in the meta/main.yml • Third-party Roles via Ansible Galaxy is great, ... but a lot of it's new or naïve; unless you're lucky, you end up modifying a lot of it.
"..." # Task -‐ authorized_keys: user: "{{ item.user }}" key: "{{ item.key }}" with_items: my_keys # Hiera Data my_keys: -‐ "ssh-‐rsa AA..." -‐ "ssh-‐rsa BB..." # Manifest create_resources( 'ssh_authorized_key', hiera('my_keys'), { user => 'app' } ) Structure of Heira data needs to match closely to what's consuming it (eg. SshAuthorizedKeys). Ansible is much more flexible (see above), and can avoid the massive single-resource-declaration problem lurking in the bottom-right. :-)
to solve without breaking everything. (You can't silently merge two identical Service definitions if you have globals and could- change-on-each-call state hanging around.) • Puppet makes you write the dependency information, but then squanders it. • Using generic data is tough without custom mangling or the experimental syntax engine. Summin' up.