PyCon Pune 2017

A conference on the Python programming language

Rahul Mahale


Orchestrating Cloud Infrastructure using Terraform

Submitted Nov 29, 2016

Terraform is an open-source tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.
We can use it to build the infrastructure in many cloud providers such as AWS, Azure, Rackspace, DigitalOcean, GoogleCloud, Docker, OpenStack etc.
Moreover it has an provisioners like chef, which we can use to automate configuration Management tasks.
Within this short workshop with this tool I will show how to use terraform by creating a basic two-tier infrastructure stack in a one command.

I will try to show how we can orchestrate complete infrastructure stack in one command and push a python application live on cloud.

What are the things happening in this single terraform command:-

Creating a VPC.
Creating a subnets one public and private.
creating respective security groups and rules.
Creating a load balancer.
Creating a app server running a web server called nginx.
Attaching a server to ELB and giving us a public DNS by which we can access the app.
And it gives a simple sketch diagram of our infrastructure as well.

In this way we have full fledge app running on Cloud in single Command.

Links :


  1. Introduction to terraform
  2. Providers
  3. Provisioners
  4. Demo.

Speaker bio

A Passionate Software Engineer and Open-Source Enthusiastic, Currently working as DevOps Engineer at BigBinary. Loves to automate all the stuffs and strong believer of Infra-as-a-code principle. I am proficient in automating stuffs using Chef, Ansible, Terraform and usually I am fond of using Scripting languages like Bash, Ruby and Python.

Recently I am working mostly on Containers and orchestration of containers in the Cloud environments and I am proficient in implementing Kubernetes and Rancher Clusters.



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

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

{{ errorMsg }}

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