DevConf 2017

Scaling platforms and services. Co-hosted by Rootconf, Red Hat and the Linux Foundation.

Toshaan Bharvani


Ansible Virtual Machine Bootstrapper

Submitted Feb 28, 2017

This presentation is about a tool for the deployment of virtual machine using orchestration and configuration management to install virtual machines on physical machine, the cloud or any other provider of bare metal machines. The tool uses existing programs such as Ansible and LibVirt to interact with the hypervisor to create the virtual machines. A generic example will be explained, using libvirt, with KVM as the hypervisor, to demonstrate how easy it is to deploy virtual machines from a text file definition, which can even be generated by a machine. The presentation will explain how the tool works and how easy it is to configure the tool to your specific server/datacenter/cloud. It then demonstrates the method of creating an example, within a few steps and how it builds up a complete army of machines. The possible integration with user authentication, monitoring (Icinga/Nagios/Zabbix) and pipeline tools (Foreman) can be extended and will be explained by means of example.


  • General virtualization techniques
  • Specific KVM virtualization techniques
  • Ansible Short Introduction
  • Ansible VMInstaller role introduction
  • Ansible VMInstaller role disection
  • Integration with Monitoring through a seperate role
  • Integration with Foreman using callback functions
  • How this works all together


Basic Linux knowledge

Speaker bio

Toshaan Bharvani is a IT consultant, currently self-employed at VanTosh,
with a interest in Open Source Software and IT Hardware. He started his
IT interest at the age of 5, when his father gave him his first own PC
components. Ever since he has been interested in IT hardware and IT
software. In business, he tends to combine higher level applications
with lower level systems. Toshaan has been involved for some time now in
some open source projects and communities.



{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}