Poängen är inte att köra snabbt. Poängen är att förstå ändringen innan den händer.
Plan
Plan är superkraften
Planen visar vad Terraform tänker skapa, ändra eller ta bort.
Terraform will perform the following actions:
# local_file.page will be replaced
-/+ content: "purple" → "green"
Plan: 1 to add, 0 to change, 1 to destroy.
Live på servern
Samma kod, två målbilder
purple.tfvarslila sida
green.tfvarsgrön sida
URLhttp://10.0.0.77:8090
cd /opt/terraform-live-demo
terraform apply -var-file=purple.tfvars
terraform apply -var-file=green.tfvars
Variabler
Variabler gör koden återanvändbar
main.tfsjälva mönstret: container, fil, port
purple.tfvarsvärden för en variant
green.tfvarsvärden för en annan variant
Samma kodbara målbilden ändras
State
State: Terraforms minne
State kopplar kodens resurser till riktiga objekt. Utan state vet Terraform inte vad den redan äger.
terraform.tfstate
resource: docker_container.demo
real id: 2553b4c0ff87...
port: 8090
Mindset
Om det är viktigt nog att bygga, är det viktigt nog att beskriva.
Det är steget från “jag vet hur jag gjorde” till “teamet kan se hur det ska vara”.
Bra första labbar
Börja smått
1. Containernginx på en port, output med URL
2. Filgenerera config eller HTML från variabler
3. DNSpeka ett namn mot tjänsten
4. VM/LXCförst när mindsetet sitter
Git
IaC utan Git är halva poängen
ändring som pull request
plan som kommentar
review innan apply
historik när något går fel
git diff
- theme = "purple"
+ theme = "green"
Vanliga misstag
Håll det enkelt i början
För mycket på dag ettbörja inte med hela produktionen
Apply utan plandå tappar man säkerheten
Secrets i repotokens ska in via secrets/vault
Manuella ändringarskapar drift och förvirring
Övergången
När mindsetet sitter kan man bygga större
Då blir Terraform naturligt för LXC, VM, DNS, brandväggar, molnresurser och hela labbmiljöer.
Slutsats
Terraform börjar inte med syntax. Det börjar med frågan: kan vi beskriva infrastrukturen så att någon annan kan förstå den?