Well, this is a love-hate-relationship. Ansible uses YAML, the assumption is, that it documents the target configuration and that Ansible is idempotent. As such Ansible should be able to reach the target configuration from any defined starting configuration.
In practice this is not always that straightforward.
Advantages of Ansible Ansible works without an agent on the target system. Well, it needs python and uses ssh.
Issues with Ansible Configuring packages is pretty easy: if you update a packages config files remain untouched.
First contact was a catastrophe. I did not know what the heck people see in it. I hated it, I made jokes about it.
Waiting a bit and re-thinking my position, I gave it a second chance. It was not easy, there is not too much good introduction material for Vagrant.
Then it dawned to me, that this is could be the holy grail of software development: instantly refreshed development environment.
Ok, I might explain a bit about DevOps.
Usually setting up a development environment involves these steps:
Create a VM Install an OS inside the VM Setup the VM’s networking properly Setup development tools inside the VM Copy the sources to the VM … and more Now you need to be very strong … using the proper tools you can do all this with a single command-line.
Vagrant enables you to create VMs with prepared images from the Internet including the network setup and running Ansible-playbooks to do the remaining setup.