Features

Write

Infrastructure as code

Plan

Workflows, not technologies

Create

Cloneable infrastructure

Infrastructure as code

Define infrastructure as code to increase operator productivity through collaboration and automation.

Collaborate & share

Terraform configuration and state can be stored in version control, shared, and collaborated on by teams of operators.

Evolve your infrastructure

Track the complete history of infrastructure versions.

Automation friendly

If it can be codified, it can be automated.

Layering Resources

Use attributes from other resources to create a layered infrastructure. Terraform handles ordering resource creation automatically.

Example Configuration

resource "digitalocean_droplet" "web" {

name = "tf-web"

size = "512mb"

image = "centos-5-8-x32"

region = "sfo1"

}

resource "dnsimple_record" "hello" {

domain = "example.com"

name = "test"

value = "${digitalocean_droplet.web.ipv4_address}"

type = "A"

}

Fast, Simplified Interaction

Simple and intuitive configuration makes even the most complicated services approachable: no more web consoles, loading bars, or confusing CLI clients.

Example Configuration

resource "aws_elb" "frontend" {

name = "frontend-load-balancer"

listener {

instance_port = 8000

instance_protocol = "http"

lb_port = 80

lb_protocol = "http"

}

instances = ["${aws_instance.app.*.id}"]

}

resource "aws_instance" "app" {

count = 5

ami = "ami-408c7f28"

instance_type = "t1.micro"

}

The intro contains a walkthrough guide, introductory literature and a range of examples to experiment with Terraform.