By using Vagrant to manage your Virtual Machines and Ansible for configuration management and provisioning
you can easily automate the setup of your whole test environment in a standardized way.
If you have never heard about Ansible and Vagrant I try to give you an idea with the following very short summary. There is a lot of good information available about Ansible and Vagrant.
Please check the provided links at the end of this blog for further information.
What is Vagrant ?
Vagrant is an open source tool on top of some virtualization solution like Oracle VirtualBox. It can automate the creation of VM’s. Additionally vagrant supports provisioning with scripts or with tools like Ansible, Puppet or Chef.
You can download a lot of useful boxes from here: https://atlas.hashicorp.com/boxes/search
What is Ansible ?
Ansible is an open source automation platform.
It is a radically simple IT automation engine designed for multi-tier deployments. [https://www.ansible.com/how-ansible-works]
Ansible just uses ssh and does not require agents or other software installed on the target nodes. You simply put your steps into an Ansible playbook, which is an easy to read text-file written in YAML syntax. Your playbook will simply look like documented steps.
Ansible will run the listed tasks described in the playbook on the target servers by invoking Ansible Modules.
Here is a simple example task from a playbook which will add a directory on a server. It uses the Ansible module “file”
- name: add home directory
Ansible is quite well known to build up whole test environments including databases like mysql which are easy to install with simple tar balls or rpm files.
Unfortunately in the community of Oracle DBA’s usually Ansible is not on the radar despite there are already good Ansible playbooks available which proofed that you can also use Ansible to provision your whole Oracle Test Environment even with Oracle Real Application Cluster:
Starting from these examples and adapting them for your needs you will experience how quick you will be able to automate your Oracle installations. This is what I did an want to show you here. Please keep in mind that this example is optimized for a fast installation and should not be used as it is for a productive system.
What you’ll get
In this blog I give you an example how to build an Oracle infrastructure from scratch containing
two virtual servers, installed and configured with CentOS 7.2 ,
each hosting an Oracle DB (22.214.171.124).
- 1) the Ansible Playbook and Vagrant configuration for this example
you can download everything from the git repository. All files are simple text files.
2) the Oracle 126.96.36.199 binaries
the Oracle binaries are not included in the download. You have to provide them.
Please copy the Oracle software zip files into the directory oracle-db-12c-vagrant-ansible/
3) your Linux host or laptop
with Network Connection,Oracle VirtualBox , Vagrant and Ansible installed.
This can be done with your linux package manager.
You will need Ansible version 188.8.131.52 or higher for this example!
Please check http://docs.ansible.com/ansible/intro_installation.html for installation details.
sudo yum install ansible
You can find the Oracle VirtualBox Download and Installation Guide here:
Download Vagrant with version 1.8.5 or higher from
Also install the vagrant hostmanager plugin:
$ vagrant plugin install vagrant-hostmanager
Now you are ready to start the whole setup which will create two virtual servers and oracle databases.
On my laptop with SSD disks and 16 GB RAM this takes about 20 minutes.
To run this example you will need minimal 8 GB RAM and 10G free disk space
Go to the directory where you have downloaded this example. Everything will be started from here.
Of cause you do not want to start this without knowing what is going on.
I will go a little bit into details therefore next week ….
Further information about Ansible:
There will be some Introduction Webinars for Ansible coming soon
you can find more examples at:
If you want to read a book I can recommend this:
Ansible: Up and Running
Print ISBN: 978-1-4919-1532-5
Ebook ISBN: 978-1-4919-1529-5