Using Vagrant, VirtualBox and Ansible with CentOS 7
Posted On April 30, 2018
This would be the case when you need to test playbooks locally before using Ansible to deploy them. We assume you already have installed Vagrant, Ansible and VirtualBox. Ansible is one of many provisioners integrated with Vagrant. Lets see how it works
Create Vagrant box with CentOS 7
sudo vagrant init
Use Publicly available boxes to add CentsOS 7 box
Add directives to Vagrantfile file
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
Next start up and ssh
Some useful Vagrant commands
To gracefully shutdown
vagrant halt "ID"
To stop it
To remove box
vagrant box remove
To view boxes
sudo vagrant global-status
Use Ansible to provision our vm
Make sure Ansible is installed on Vagrant host
Add lines below to Vigrantfile before the ‘end’
# Provisioning configuration for Ansible.
config.vm.provision "ansible" do |ansible|
ansible.playbook = "playbook.yml"
ansible.sudo = true
# Run commands as root.
In the same directory as Vigrantfile create playbook.yml file with the following content. This test playbook will test weather ntp service is installed and running
- hosts: all
- name: Ensure NTP (for time synchronization) is installed.
yum: name=ntp state=installed
- name: Ensure NTP is running.
service: name=ntpd state=started enabled=yes
Run playbook from current directory