In my last post I wrote about the devops demo I have built over the last couple of weeks. The demo uses Vagrant to provision the virtual machines (two at the moment) that are used to simulate a ‘production’ environment and later on a ‘development’ environment.
Virtualizing databases requires that servers, the databases run on, are known to the Delphix engine. Since Vagrant is used to create the virtual machines, it is obvious that we can use Vagrant to create matching configurations in Delphix everytime we create a new virtual machine.
Vagrant controls the complete lifecycle of the virtual machine beyond the inital creation i.e. we can keep Delphix in sync with the infrastructure by asking Vagrant to stop VDBs when a virtual machine is stopped and delete all containers and the environment when the virtual machine is destroyed.
Adding new functionallity to Vagrant is simple. All that is needed is is to install a third-party plugin and to configuring the Vagrantfile to make use of the plug-in.
The vagrant-delphix plug-in plug-in adds the following features to Vagrant:
- register a new virtual machine by creating a matching environemnt in Delphix
- stopping and disabling dSources and VDBs when the virtual machine is stopped or suspended
- re-enabling environments if a virtual machine is restarted
- clean-up Delphix when a virtual machine is destroyed
The plug-in depends on the delphix_rb ruby gem to interact with Delphix’s REST API. Both projects and further documentation how to use them can be found on Github.