2014-07-16 16:51:48 -05:00
|
|
|
<!-- Main jumbotron for a primary marketing message or call to action -->
|
|
|
|
<div id="jumbotron-mask">
|
|
|
|
<div id="jumbotron">
|
2014-07-26 03:00:59 -05:00
|
|
|
<div class="jumbotron-content" id="jumbotron-content">
|
2014-07-28 14:36:58 -05:00
|
|
|
<h2 class="tag-line" id="tag-line" style="visibility: hidden;">Build, Combine, and Launch Infrastructure</h2>
|
2014-07-23 22:35:57 -05:00
|
|
|
</div>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="feature skew-item" id="feature-auto">
|
2014-07-16 16:51:48 -05:00
|
|
|
<div class="container">
|
2014-07-22 17:31:43 -05:00
|
|
|
<div class="row">
|
2014-07-24 13:43:14 -05:00
|
|
|
<div class="col-lg-7 col-md-7 col-sm-12">
|
2014-07-27 17:57:43 -05:00
|
|
|
<h2 class="feature-t">Infrastructure as code</h2>
|
2014-07-27 11:07:23 -05:00
|
|
|
<p>Terraform provides a common configuration to launch infrastructure —
|
2014-07-27 17:57:43 -05: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 11:07:23 -05:00
|
|
|
<p>Simple file based configuration gives you a single view
|
|
|
|
of your entire infrastructure.</p>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
2014-07-24 13:43:14 -05:00
|
|
|
<div class="col-lg-5 col-md-5 col-sm-12">
|
2014-07-27 11:07:23 -05:00
|
|
|
<h3 class="terminal-text">$ terraform apply</h3>
|
2014-07-26 08:57:57 -05:00
|
|
|
</div>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
2014-07-22 17:31:43 -05:00
|
|
|
</div> <!-- /container -->
|
2014-07-29 02:37:17 -05:00
|
|
|
<div class="feature-skew" id="feature-auto-bg"></div>
|
2014-07-22 17:31:43 -05:00
|
|
|
</div> <!-- /feature -->
|
2014-07-16 16:51:48 -05:00
|
|
|
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="feature skew-item" id="feature-iterate">
|
2014-07-22 17:31:43 -05:00
|
|
|
<div class="container">
|
|
|
|
<div class="row">
|
2014-07-23 20:58:55 -05:00
|
|
|
<div class="col-lg-5 col-md-5 col-sm-12">
|
|
|
|
<div class="it-icon f-icon clearfix">
|
2014-07-22 17:31:43 -05:00
|
|
|
<div class="t-block"></div>
|
2014-07-22 20:59:07 -05:00
|
|
|
<div class="t-block t2"></div>
|
|
|
|
<div class="t-block t3"></div>
|
|
|
|
<div class="t-block t4"></div>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
|
|
|
</div>
|
2014-07-23 20:58:55 -05:00
|
|
|
<div class="col-lg-7 col-md-7 col-sm-12">
|
2014-07-27 17:57:43 -05: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
|
2014-07-28 15:09:32 -05:00
|
|
|
one cloud provider, add a DNS entry with its IP with a different
|
2014-07-27 17:57:43 -05:00
|
|
|
provider. Built-in dependency resolution means
|
2014-07-27 14:51:27 -05:00
|
|
|
things happen in the right order.</p>
|
2014-07-26 08:57:57 -05:00
|
|
|
</div>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
|
|
|
</div> <!-- /container -->
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="feature-skew" id="feature-iterate-bg"></div>
|
2014-07-22 17:31:43 -05:00
|
|
|
</div> <!-- /feature -->
|
2014-07-16 16:51:48 -05:00
|
|
|
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="feature skew-item" id="feature-clone">
|
2014-07-22 17:55:33 -05:00
|
|
|
<div class="container">
|
|
|
|
<div class="row">
|
2014-07-23 20:58:55 -05:00
|
|
|
<div class="col-lg-5 col-md-5 col-sm-12">
|
2014-07-27 14:51:27 -05:00
|
|
|
<h2 class="feature-t">Evolve your Infrastructure</h2>
|
|
|
|
<p>Your configuration and state can be stored in version control, shared
|
2014-07-27 11:07:23 -05:00
|
|
|
and distributed among your team. Updates, scaling and modifications
|
2014-07-27 14:51:27 -05:00
|
|
|
will be planned first, so you can iterate with confidence.</p>
|
2014-07-26 08:57:57 -05:00
|
|
|
</div>
|
2014-07-23 20:58:55 -05:00
|
|
|
<div class="col-md-push-1 col-lg-6 col-md-6 col-sm-12">
|
2014-07-22 17:55:33 -05:00
|
|
|
<div class="clone-icon f-icon">
|
2014-07-22 21:39:04 -05: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 08:57:57 -05:00
|
|
|
</div>
|
2014-07-22 21:39:04 -05: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 08:57:57 -05:00
|
|
|
</div>
|
2014-07-22 21:39:04 -05: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 08:57:57 -05:00
|
|
|
</div>
|
|
|
|
</div>
|
2014-07-22 17:55:33 -05:00
|
|
|
</div>
|
2014-07-26 08:57:57 -05:00
|
|
|
</div>
|
2014-07-22 17:55:33 -05:00
|
|
|
</div>
|
|
|
|
</div> <!-- /container -->
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="feature-skew" id="feature-clone-bg"></div>
|
2014-07-22 17:55:33 -05:00
|
|
|
</div> <!-- /feature -->
|
|
|
|
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="skew-item" id="demos">
|
2014-07-16 16:51:48 -05:00
|
|
|
<div class="container">
|
|
|
|
<div class="terminals row">
|
|
|
|
|
|
|
|
<div class="col-xs-12 col-lg-12 explantion">
|
2014-07-27 14:51:27 -05: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 16:51:48 -05:00
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="terminal-item col-xs-12 col-lg-12">
|
|
|
|
<div class="terminal">
|
|
|
|
<header>
|
2014-07-26 08:57:57 -05:00
|
|
|
<h4>Example Configuration</h4>
|
2014-07-16 16:51:48 -05:00
|
|
|
</header>
|
|
|
|
<div class="terminal-window">
|
2014-07-25 13:21:29 -05:00
|
|
|
<div class="">
|
2014-07-16 16:51:48 -05:00
|
|
|
<div class="display">
|
2014-07-28 12:48:25 -05:00
|
|
|
<p>resource <span class="txt-spe">"digitalocean_droplet"</span> <span class="txt-str">"web"</span> {</p>
|
2014-07-28 12:35:53 -05:00
|
|
|
<p> name = <span class="txt-str">"tf-web"</span></p>
|
|
|
|
<p> size = <span class="txt-str">"512mb"</span></p>
|
|
|
|
<p> image = <span class="txt-str">"centos-5-8-x32"</span></p>
|
|
|
|
<p> region = <span class="txt-str">"sfo1"</span></p>
|
2014-07-26 08:57:57 -05:00
|
|
|
<p>}</p>
|
|
|
|
<p> </p>
|
2014-07-28 12:48:25 -05:00
|
|
|
<p>resource <span class="txt-spe">"dnsimple_record"</span> <span class="txt-str">"hello"</span> {</p>
|
2014-07-28 12:35:53 -05:00
|
|
|
<p> domain = <span class="txt-str">"example.com"</span></p>
|
|
|
|
<p> name = <span class="txt-str">"test"</span></p>
|
|
|
|
<p> value = <span class="txt-str">"<span class="txt-var">${digitalocean_droplet.web.ipv4_address}</span>"</span></p>
|
2014-07-28 15:49:30 -05:00
|
|
|
<p> type = <span class="txt-str">"A"</span></p>
|
2014-07-26 08:57:57 -05:00
|
|
|
<p>}</p>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div> <!-- /.terminal-item -->
|
|
|
|
|
|
|
|
<div class="col-xs-12 col-lg-12 explantion">
|
2014-07-27 11:07:23 -05:00
|
|
|
<h2>Fast, Simplified Interaction</h2>
|
2014-07-16 16:51:48 -05:00
|
|
|
<p>
|
2014-07-27 14:51:27 -05: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 16:51:48 -05:00
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="terminal-item col-xs-12 col-lg-12">
|
|
|
|
<div class="terminal">
|
|
|
|
<header>
|
2014-07-26 08:57:57 -05:00
|
|
|
<h4>Example Configuration</h4>
|
2014-07-16 16:51:48 -05:00
|
|
|
</header>
|
|
|
|
<div class="terminal-window">
|
2014-07-25 13:21:29 -05:00
|
|
|
<div class="">
|
2014-07-16 16:51:48 -05:00
|
|
|
<div class="display">
|
2014-07-28 12:48:25 -05:00
|
|
|
<p>resource <span class="txt-spe">"aws_elb"</span> <span class="txt-str">"frontend"</span> {</p>
|
2014-07-28 12:41:17 -05:00
|
|
|
<p> name = <span class="txt-str">"frontend-load-balancer"</span></p>
|
2014-07-27 11:07:23 -05:00
|
|
|
<p> listener {</p>
|
2014-07-28 12:41:17 -05:00
|
|
|
<p> instance_port = <span class="txt-int">8000</span></p>
|
|
|
|
<p> instance_protocol = <span class="txt-str">"http"</span></p>
|
|
|
|
<p> lb_port = <span class="txt-int">80</span></p>
|
|
|
|
<p> lb_protocol = <span class="txt-str">"http"</span></p>
|
2014-07-27 11:07:23 -05:00
|
|
|
<p> }</p>
|
|
|
|
<p> </p>
|
2014-07-28 12:41:17 -05:00
|
|
|
<p> instances = [<span class="txt-str">"<span class="txt-var">${aws_instance.app.*.id}</span>"</span>]</p>
|
2014-07-26 08:57:57 -05:00
|
|
|
<p>}</p>
|
|
|
|
<p> </p>
|
2014-07-28 12:48:25 -05:00
|
|
|
<p>resource <span class="txt-spe">"aws_instance"</span> <span class="txt-str">"app"</span> {</p>
|
2014-07-28 12:41:17 -05:00
|
|
|
<p> count = <span class="txt-int">5</span></p>
|
2014-07-27 11:07:23 -05:00
|
|
|
<p> </p>
|
2014-07-28 12:41:17 -05:00
|
|
|
<p> ami = <span class="txt-str">"ami-043a5034"</span></p>
|
|
|
|
<p> instance_type = <span class="txt-str">"m1.small"</span></p>
|
2014-07-26 08:57:57 -05:00
|
|
|
<p>}</p>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div> <!-- /.terminal-item -->
|
|
|
|
</div>
|
|
|
|
</div>
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="feature-skew" id="demo-bg"></div>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div><!-- /#demos -->
|
|
|
|
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="skew-item" id="cta">
|
2014-07-16 16:51:48 -05:00
|
|
|
<div class="container">
|
|
|
|
<div class="row">
|
|
|
|
<div class="intro">
|
2014-07-23 19:14:03 -05:00
|
|
|
<div class="left col-xs-12 col-sm-4 col-sm-offset-1 col-md-offset-2 col-md-4">
|
2014-07-27 14:16:56 -05:00
|
|
|
<p>The intro contains a walkthrough guide, introductory literature
|
|
|
|
and a range of examples to experiment with Terraform.</p>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
2014-07-23 19:14:03 -05:00
|
|
|
<div class="col-xs-12 col-sm-6 col-md-4 right">
|
2014-07-27 14:16:56 -05:00
|
|
|
<a class="outline-btn" href="/intro/index.html">Try Terraform »</a>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2014-07-29 03:56:17 -05:00
|
|
|
<div class="feature-skew" id="cta-bg"></div>
|
2014-07-16 16:51:48 -05:00
|
|
|
</div>
|