2014-07-16 23:51:48 +02:00
|
|
|
<!-- Main jumbotron for a primary marketing message or call to action -->
|
|
|
|
<div id="jumbotron-mask">
|
|
|
|
<div id="jumbotron">
|
2014-07-26 10:00:59 +02:00
|
|
|
<div class="jumbotron-content" id="jumbotron-content">
|
2014-07-28 14:51:16 +02:00
|
|
|
<h2 class="tag-line" id="tag-line" style="display: none;">Build, Combine, and Launch Infrastucture</h2>
|
2014-07-24 05:35:57 +02:00
|
|
|
</div>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2014-07-23 00:31:43 +02:00
|
|
|
<div class="feature" id="feature-auto">
|
2014-07-16 23:51:48 +02:00
|
|
|
<div class="container">
|
2014-07-23 00:31:43 +02:00
|
|
|
<div class="row">
|
2014-07-24 20:43:14 +02:00
|
|
|
<div class="col-lg-7 col-md-7 col-sm-12">
|
2014-07-28 00:57:43 +02:00
|
|
|
<h2 class="feature-t">Infrastructure as code</h2>
|
2014-07-27 18:07:23 +02:00
|
|
|
<p>Terraform provides a common configuration to launch infrastructure —
|
2014-07-28 00:57:43 +02:00
|
|
|
from physical and virtual servers to email and DNS providers. Once launched,
|
|
|
|
Terraform safely and efficiently changes infrastructure as the configuration
|
|
|
|
is evolved.</p>
|
2014-07-27 18:07:23 +02:00
|
|
|
<p>Simple file based configuration gives you a single view
|
|
|
|
of your entire infrastructure.</p>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
2014-07-24 20:43:14 +02:00
|
|
|
<div class="col-lg-5 col-md-5 col-sm-12">
|
2014-07-27 18:07:23 +02:00
|
|
|
<h3 class="terminal-text">$ terraform apply</h3>
|
2014-07-26 15:57:57 +02:00
|
|
|
</div>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
2014-07-23 00:31:43 +02:00
|
|
|
</div> <!-- /container -->
|
|
|
|
</div> <!-- /feature -->
|
2014-07-16 23:51:48 +02:00
|
|
|
|
2014-07-23 00:31:43 +02:00
|
|
|
<div class="feature" id="feature-iterate">
|
|
|
|
<div class="container">
|
|
|
|
<div class="row">
|
2014-07-24 03:58:55 +02:00
|
|
|
<div class="col-lg-5 col-md-5 col-sm-12">
|
|
|
|
<div class="it-icon f-icon clearfix">
|
2014-07-23 00:31:43 +02:00
|
|
|
<div class="t-block"></div>
|
2014-07-23 03:59:07 +02:00
|
|
|
<div class="t-block t2"></div>
|
|
|
|
<div class="t-block t3"></div>
|
|
|
|
<div class="t-block t4"></div>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
2014-07-24 03:58:55 +02:00
|
|
|
<div class="col-lg-7 col-md-7 col-sm-12">
|
2014-07-28 00:57:43 +02:00
|
|
|
<h2 class="feature-t">Combine Multiple Providers</h2>
|
|
|
|
<p>Terraform allows you to effortlessly combine high-level system
|
|
|
|
providers with your own or with each other. Launch a server from
|
|
|
|
one cloud provider, add a DNS entry with it's IP with a different
|
|
|
|
provider. Built-in dependency resolution means
|
2014-07-27 21:51:27 +02:00
|
|
|
things happen in the right order.</p>
|
2014-07-26 15:57:57 +02:00
|
|
|
</div>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
|
|
|
</div> <!-- /container -->
|
2014-07-23 00:31:43 +02:00
|
|
|
</div> <!-- /feature -->
|
2014-07-16 23:51:48 +02:00
|
|
|
|
2014-07-23 00:55:33 +02:00
|
|
|
<div class="feature" id="feature-clone">
|
|
|
|
<div class="container">
|
|
|
|
<div class="row">
|
2014-07-24 03:58:55 +02:00
|
|
|
<div class="col-lg-5 col-md-5 col-sm-12">
|
2014-07-27 21:51:27 +02:00
|
|
|
<h2 class="feature-t">Evolve your Infrastructure</h2>
|
|
|
|
<p>Your configuration and state can be stored in version control, shared
|
2014-07-27 18:07:23 +02:00
|
|
|
and distributed among your team. Updates, scaling and modifications
|
2014-07-27 21:51:27 +02:00
|
|
|
will be planned first, so you can iterate with confidence.</p>
|
2014-07-26 15:57:57 +02:00
|
|
|
</div>
|
2014-07-24 03:58:55 +02:00
|
|
|
<div class="col-md-push-1 col-lg-6 col-md-6 col-sm-12">
|
2014-07-23 00:55:33 +02:00
|
|
|
<div class="clone-icon f-icon">
|
2014-07-23 04:39:04 +02:00
|
|
|
<div class="c-group clearfix">
|
|
|
|
<div class="c-col c1">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
</div>
|
|
|
|
<div class="c-col c2">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
</div>
|
|
|
|
<div class="c-col c3">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
2014-07-26 15:57:57 +02:00
|
|
|
</div>
|
2014-07-23 04:39:04 +02:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="c-group cg2">
|
|
|
|
<div class="c-col c1">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
</div>
|
|
|
|
<div class="c-col c2">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
</div>
|
|
|
|
<div class="c-col c3">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
2014-07-26 15:57:57 +02:00
|
|
|
</div>
|
2014-07-23 04:39:04 +02:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="c-group cg3 clearfix">
|
|
|
|
<div class="c-col c1">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
</div>
|
|
|
|
<div class="c-col c2">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
|
|
|
</div>
|
|
|
|
<div class="c-col c3">
|
|
|
|
<div class="c-block"></div>
|
|
|
|
<div class="c-block"></div>
|
2014-07-26 15:57:57 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
2014-07-23 00:55:33 +02:00
|
|
|
</div>
|
2014-07-26 15:57:57 +02:00
|
|
|
</div>
|
2014-07-23 00:55:33 +02:00
|
|
|
</div>
|
|
|
|
</div> <!-- /container -->
|
|
|
|
</div> <!-- /feature -->
|
|
|
|
|
2014-07-16 23:51:48 +02:00
|
|
|
<div id="demos">
|
|
|
|
<div class="container">
|
|
|
|
<div class="terminals row">
|
|
|
|
|
|
|
|
<div class="col-xs-12 col-lg-12 explantion">
|
2014-07-27 21:51:27 +02:00
|
|
|
<h2>Layering Resources</h2>
|
|
|
|
<p>
|
|
|
|
Use attributes from other resources to create
|
|
|
|
a layered infrastructure. Terraform handles ordering
|
|
|
|
resource creation automatically.
|
2014-07-16 23:51:48 +02:00
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="terminal-item col-xs-12 col-lg-12">
|
|
|
|
<div class="terminal">
|
|
|
|
<header>
|
2014-07-26 15:57:57 +02:00
|
|
|
<h4>Example Configuration</h4>
|
2014-07-16 23:51:48 +02:00
|
|
|
</header>
|
|
|
|
<div class="terminal-window">
|
2014-07-25 20:21:29 +02:00
|
|
|
<div class="">
|
2014-07-16 23:51:48 +02:00
|
|
|
<div class="display">
|
2014-07-26 15:57:57 +02:00
|
|
|
<p>resource "digitalocean_droplet" "web" {</p>
|
2014-07-28 16:49:51 +02:00
|
|
|
<p> name = "tf-web"</p>
|
2014-07-26 15:57:57 +02:00
|
|
|
<p> size = "512mb"</p>
|
|
|
|
<p> image = "centos-5-8-x32"</p>
|
|
|
|
<p> region = "sfo1"</p>
|
|
|
|
<p>}</p>
|
|
|
|
<p> </p>
|
|
|
|
<p>resource "dnsimple_record" "hello" {</p>
|
|
|
|
<p> domain = "jack.ly"</p>
|
|
|
|
<p> name = "hello"</p>
|
2014-07-28 16:49:51 +02:00
|
|
|
<p> value = "<span class="txt-r">${digitalocean_droplet.web.ipv4_address}</span>"</p>
|
2014-07-26 15:57:57 +02:00
|
|
|
<p> type = "A"</p>
|
|
|
|
<p>}</p>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div> <!-- /.terminal-item -->
|
|
|
|
|
|
|
|
<div class="col-xs-12 col-lg-12 explantion">
|
2014-07-27 18:07:23 +02:00
|
|
|
<h2>Fast, Simplified Interaction</h2>
|
2014-07-16 23:51:48 +02:00
|
|
|
<p>
|
2014-07-27 21:51:27 +02:00
|
|
|
Simple and intuitive configuration makes even the most complicated services approachable:
|
|
|
|
no more web consoles, loading bars, or confusing CLI clients.
|
2014-07-16 23:51:48 +02:00
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="terminal-item col-xs-12 col-lg-12">
|
|
|
|
<div class="terminal">
|
|
|
|
<header>
|
2014-07-26 15:57:57 +02:00
|
|
|
<h4>Example Configuration</h4>
|
2014-07-16 23:51:48 +02:00
|
|
|
</header>
|
|
|
|
<div class="terminal-window">
|
2014-07-25 20:21:29 +02:00
|
|
|
<div class="">
|
2014-07-16 23:51:48 +02:00
|
|
|
<div class="display">
|
2014-07-27 18:07:23 +02:00
|
|
|
<p>resource "aws_elb" "frontend" {</p>
|
|
|
|
<p> name = "frontend-load-balancer"</p>
|
|
|
|
<p> listener {</p>
|
|
|
|
<p> instance_port = 8000</p>
|
|
|
|
<p> instance_protocol = "http"</p>
|
|
|
|
<p> lb_port = 80</p>
|
|
|
|
<p> lb_protocol = "http"</p>
|
|
|
|
<p> }</p>
|
|
|
|
<p> </p>
|
|
|
|
<p> instances = ["${aws_instance.app.*.id}"]</p>
|
2014-07-26 15:57:57 +02:00
|
|
|
<p>}</p>
|
|
|
|
<p> </p>
|
2014-07-27 18:07:23 +02:00
|
|
|
<p>resource "aws_instance" "app" {</p>
|
|
|
|
<p> count = 5</p>
|
|
|
|
<p> </p>
|
|
|
|
<p> ami = "ami-043a5034"</p>
|
|
|
|
<p> instance_type = "m1.small"</p>
|
2014-07-26 15:57:57 +02:00
|
|
|
<p>}</p>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div> <!-- /.terminal-item -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div><!-- /#demos -->
|
|
|
|
|
|
|
|
<div id="cta">
|
|
|
|
<div class="container">
|
|
|
|
<div class="row">
|
|
|
|
<div class="intro">
|
2014-07-24 02:14:03 +02:00
|
|
|
<div class="left col-xs-12 col-sm-4 col-sm-offset-1 col-md-offset-2 col-md-4">
|
2014-07-27 21:16:56 +02:00
|
|
|
<p>The intro contains a walkthrough guide, introductory literature
|
|
|
|
and a range of examples to experiment with Terraform.</p>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
2014-07-24 02:14:03 +02:00
|
|
|
<div class="col-xs-12 col-sm-6 col-md-4 right">
|
2014-07-27 21:16:56 +02:00
|
|
|
<a class="outline-btn" href="/intro/index.html">Try Terraform »</a>
|
2014-07-16 23:51:48 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|