Add slides 12-17: Terraform section (intro, HCL, state, providers, code, OpenTofu)
Some checks failed
Deploy presentation / deploy (push) Has been cancelled
Some checks failed
Deploy presentation / deploy (push) Has been cancelled
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
61
index.html
61
index.html
@@ -127,6 +127,67 @@
|
|||||||
<p><span class="puppet-col">Puppet</span> · <span class="ansible-col">Ansible</span> · <span class="tf-col">Terraform</span> — each fights a different battle.</p>
|
<p><span class="puppet-col">Puppet</span> · <span class="ansible-col">Ansible</span> · <span class="tf-col">Terraform</span> — each fights a different battle.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<!-- ─── SLIDE 12 : Terraform intro ──────────────────────────────── -->
|
||||||
|
<section>
|
||||||
|
<h2>🏗️ <span class="tf-col">Terraform</span></h2>
|
||||||
|
<p>Start here. Before you configure a server, you need to have one.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ─── SLIDE 13 : Terraform concepts ───────────────────────────── -->
|
||||||
|
<section>
|
||||||
|
<h2>HCL: HashiCorp Configuration Language.</h2>
|
||||||
|
<p>Declarative, human-readable — and pure JSON works too.<br>
|
||||||
|
<code>terraform plan</code> previews · <code>terraform apply</code> creates · <code>terraform destroy</code> removes.</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ─── SLIDE 14 : Terraform state ──────────────────────────────── -->
|
||||||
|
<section>
|
||||||
|
<h2>Terraform remembers what it built.</h2>
|
||||||
|
<p>The <code>.tfstate</code> file maps code to real-world resources. Store it remotely.<br>
|
||||||
|
Depending on what you manage, it can contain plaintext sensitive values — credentials, tokens, secrets.<br>
|
||||||
|
<em>Handle it with care. Don't feed it to your LLM.</em></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ─── SLIDE 15 : Terraform providers ──────────────────────────── -->
|
||||||
|
<section>
|
||||||
|
<h2>One tool. Every API.</h2>
|
||||||
|
<p>1000+ providers: AWS, GCP, Azure, Cloudflare, GitHub, Kubernetes…<br>
|
||||||
|
Not just cloud — manage GitHub teams, Datadog monitors, PagerDuty schedules, DNS records.<br>
|
||||||
|
<em>If it has an API, there's a Terraform provider for it.</em></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ─── SLIDE 16 : Terraform code ───────────────────────────────── -->
|
||||||
|
<section>
|
||||||
|
<p class="filename"># main.tf</p>
|
||||||
|
<pre><code class="language-hcl" data-trim>
|
||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
aws = { source = "hashicorp/aws", version = "~> 5.0" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
provider "aws" { region = "eu-west-3" }
|
||||||
|
|
||||||
|
resource "aws_instance" "web" {
|
||||||
|
ami = "ami-0c55b159cbfafe1f0"
|
||||||
|
instance_type = "t3.micro"
|
||||||
|
tags = { Name = "finistdevs-web" }
|
||||||
|
}
|
||||||
|
|
||||||
|
output "public_ip" {
|
||||||
|
value = aws_instance.web.public_ip
|
||||||
|
}
|
||||||
|
</code></pre>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ─── SLIDE 17 : OpenTofu ──────────────────────────────────────── -->
|
||||||
|
<section>
|
||||||
|
<h2>In 2023, HashiCorp changed Terraform's license.</h2>
|
||||||
|
<p>BSL instead of MPL — no longer truly open-source.<br>
|
||||||
|
The community responded: <strong>OpenTofu</strong>, by the OpenTF Foundation, is the open-source fork.<br>
|
||||||
|
<em>Drop-in replacement. Fully compatible. Community-driven.</em></p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user