Infrastructure as code
Workflows, not technologies
Cloneable infrastructure
Define infrastructure as code to increase operator productivity through collaboration and automation.
Terraform configuration and state can be stored in version control, shared, and collaborated on by teams of operators.
Track the complete history of infrastructure versions.
If it can be codified, it can be automated.
Use attributes from other resources to create a layered infrastructure. Terraform handles ordering resource creation automatically.
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"
}
Simple and intuitive configuration makes even the most complicated services approachable: no more web consoles, loading bars, or confusing CLI clients.
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.