So in light of recent upgrades to:
https://github.com/ansible/ansible/tree/master/examples/playbooks
I think that nearly all things that can be done with most Puppet/Chef are decently doable from the playbook language, assuming the underlying modules all existed (some are pending, like the users module).
There are some obvious things we INTENTIONALLY don’t have – if/then/else/case blocks and so forth, but that may not be immediately clear from the docs how you would do various things, but in the end, I think Ansible actually makes them simpler, and all those things remain possible. I’m deliberately trying to keep things from not developing programming language type constructs while still keeping the capabilities of those constructs. I’ve deliberately tried to avoid doing if/then/else in YAML too, which I think is disastrously verbose
The end result is things should be a lot easier to read, understand, and audit – even by non-developers. Do folks agree?
If you can share some snippet of something that is missing we can probably talk about how it could be done now, or not. Maybe it’s not clear – maybe something is genuinely missing. I want to know.
I’ve deliberately left a lot of complexity out of the system – it’s not something you port 1:1, you would think about it differently… but in general I think between vars, vars_files, conditional imports, and only_if, nearly all the things you REALLY want to model are possible, and easily reusable.
Any thing people think are still not possible? (If so, maybe I can talk about how I’d try to do it? And maybe we would identify some remaining gaps). How do we stand?
–Michael