It works okay. One shortcoming, as mentioned at https://news.ycombinator.com/item?id=7831680, is that there is no clear model for state transitions. Let's say that on day 1, you want to use Apache:
- apt: name=apache2 state=present
Then, on day 2, you realize that Apache isn't hip, so you switch to nginx instead: - apt: name=apache2 state=absent
- apt: name=nginx state=present
It works, but you're stuck with entries in your playbook that are there for purely historical reasons.