IaC – Terraform

IaC general concepts
IaC paradigms
IaC tools

Ansible is a Python-based IT system configuration automation tool whose actions are configured using YAML-formatted files, called playbooks.

Vagrant is most often used to automate the consistent creation of a small set of VMs. The most common use case is to replicate a development environment among multiple developers who need to guarantee development consistency. Vagrant can incorporate other automation tools, like Ansible, Puppet or Chef, to perform specific VM configuration tasks.

Terraform is an infrastructure as code (IaC) tool for creating, maintaining and decommissioning large data center infrastructure. The configurations are specified in a declarative language, HashiCorp Configuration Language, or HCL. As the configuration changes, Terraform determines the steps to transform an infrastructure to the new desired state. Think of Terraform as a cloud infrastructure management tool that works across multiple cloud providers, such as AWS, Microsoft Azure and Google Cloud Platform. It is ideal for the full lifecycle of data center infrastructure.

It would not be unusual to see all three being used within an organization: Ansible for network configuration management, Terraform to manage cloud infrastructure across one or more cloud providers, and Vagrant for software development and test platform standardization.

Terraform vs Ansible

Terraform