Play around with Ansible and vagrant.
Launch vagrant, provisioning.
$ pip install passlib $ python -c "from passlib.hash import sha512_crypt; print sha512_crypt.encrypt('atomic')" $6$rounds=656000$oopezXro4Wnys/EP$VoQbhD.dAb5HqedhTEBmqaGSOb9fNAtQUhIJHBeL8Jqv389znVP4iTOQ8QUjpvt9wrT8TPVwp.y8bt4vS86Ry/
$ vagrant ssh controller
$ sudo su
$ ansible-playbook /vagrant/playbook/playbook.yml --ask-pass -u root
$ ansible all -m setup
Facts are stored via fast-caching in /etc/ansible/fact-cache and can be re-used during playbook run.