Vagrant & Ansible
for hermits like me and you?
Dev-VM
- Install OS into a virtual machine and snapshot it
- Configure VM networking and other necessities
- Repeat if you have
- 1 or more webserver
- 1 or more application server
- 1 or more database
Testing
- Install all needed packages in the right version
- Configure the stack and track every step to be able to debug / retry complex setups
- snapshot, document and version control everything
Vagrant
- DevTool only
- Create, boot & install virtual servers and OS images
- Convenient interface to running servers
- Only one single text file
- Syntax is Ruby
- Works with virtualbox, VMWare, Docker, AWS and many more providers
- Lots of plugins
Ansible
- Production-ready
- Deploy, configure and orchestrate software on multiple systems over SSH
- Syntax is YAML
- Can be one single text file
-
- Includes are possible
- best practice: use roles and split things up by using a tree-like structure
Vagrant + Ansible
- Infrastructure as code
- "Version control everything!"
- Everybody on the team uses the same environment
- No "but it works on my machine ..." excuse anymore
- Seamless rollout to production
- Just re-use the ansible playbook on production
- Or: Create a VCS branch for production-playbooks
Vagrant + Ansible
- Easier debugging
- "It worked on yesterday's configuration, what changed since then?"
- Faster desaster recovery
- "Let's just start a fresh application cluster using yesterday's version of our software stack"
- Implicit project documentation
- Ansible playbooks can be read like a todo list
For hermits?
"You told us that this is about Vagrant + Ansible for hermits!"
"Is all this stuff actually useful when i am working on a solo project? Doesn't it slow me down?"
Let me show you an example...
Vagrant
We start a local virtualbox machine using the hardware and networking configuration which has been specified in a Vagrantfile and boot this box using an Ubuntu 14.04 image
Ansible
We install, deploy and configure our software stack:
- psdash application as a git clone directly from github
- Nginx as our webserver
- Basic firewall config for HTTP and SSH access/limiting to the server
Vagrant & Ansible for hermits
By Stefan Antoni
Vagrant & Ansible for hermits
A short introduction how to develop in a clean environment with Vagrant and Ansible.
- 2,099