Customer is a Fortune 100 telecom company. They were using a 10+years old server deployment tool for their infrastructure provisioning. The system consists of a Drupal frontend which works with the help of Perl, shell and TCL scripts on a VMware backend infrastructure. Close to 2200+ Virtual machines were provisioned and managed using this tool.

The old system was built on different Perl, shell and TCL scripts which were unorganized and outdated. Most of the processes which are supposed to run automatically were carried out manually. The system consisted of a central controller, which handled the deployment process. The scripts used in the controller for template rendering were hard to debug.

Pushing configurations to virtual machine is done by downloading an RPM from controller to VM and then installing it. Adding customised Apache/DNS/MySQL/Squid configurations were done using different sections in Drupal which were unorganized, confusing and required little programing knowledge for the customer.

Customer wants to make the system fully automated and organized.


A new robust system is introduced with two Drupal installations, one for admin portal and other for customer requests. The customer can request the VM through the customer portal and the admins can approve/deny requests from the admin portal, thereby making the system more versatile. All the TCL scripts have been converted to more easy TPL scripts. The whole VM deployment process is controlled by Camunda, which is a Decision and Workflow Management Platform. In camunda, we could design flows for every process and handle the whole process in a more organised and automated way.

Once the VM request is approved by the administrator, the deployment process will start and configuration files are generated using Perl scripts and are pushed to the GIT server and a VM will be cloned alongside. For cloning VMs, VMWare APIs are used and a VM will be automatically cloned with IPs necessary for its operation.

To push the configuration to the VM, Puppet the configuration management tool is used. The configurations will be automatically pulled from GIT server by the Puppet server and in turn deployed to the VM with a Puppet agent run.

All the necessary packages and configurations are deployed to the VM automatically and the server is added to Check_MK for monitoring. For patching before go live, Spacewalk with CentOS security errata is used. Once the VM deployment is completed, an automated email is sent to customer.


The whole deployment part is fully automated with no human intervention and the management of the VM can also be done with minimum human intervention.

New Controller

The new updated controllers provide a way more user friendly interface with which a customer can request proxy with minimum effort. The dual controller setup helped to minimise complexity of the system.

Tracking the deployment

Camunda provides a more easy way to track understand the process. It also help to debug and retry failed tasks, thereby decreasing the time to remedy.

Backup and Efficient Management of Code

Pushing code to GIT helped to manage the code and review it easily when needed. This also helps in an event of a complete disaster.

Pulling configurations

Puppet will pull the code from git and deploy it to the VM eliminating the need of creating RPM. The use of puppet will help in automatically reverting any manual configuration changes.

Management of deployed proxies

The VMs during the deployment process will be added to Check_MK for monitoring. The package management is done using Spacewalk, from where we could push Security patches and other updates and have complete control over the proxies even after a long time.

Human intervention avoided
Increase in Turn Around time
Reduction in incidents that impacts the business
Technologies Used