Add initial Terraform documentation and setup guides

This commit is contained in:
Vincent Nuszbaum
2024-11-01 15:41:43 +01:00
parent e53712d50a
commit 46f26d04ab
10 changed files with 314 additions and 0 deletions

43
Praktijk/E. For_each.md Normal file
View File

@@ -0,0 +1,43 @@
Het is mooi dat je nu meerdere webapps kunt maken, maar de app service plan die we gebruiken heeft daar eigenlijk helemaal de resources niet voor. Dus we moeten nu toch een app service plan per webapp gaan maken.
Daar kun je for_each goed voor gebruiken in combinatie met een map variabelen.
## Variabelen
Als eerste ga je een map variabelen maken.
- Voeg in je variables.tf een nieuwe variabelen toe met het type map(any)
- Je kunt nu ook de app service plan naam en app naam variabelen verwijderen, die hebben we nu namelijk niet meer nodig.
- Ga nu naar je dev.tfvars file, verwijder hier ook de app service plan naam en app naam variabelen.
- Nu kun je de waardes van je map variabelen toe gaan voegen. Zie hieronder een voorbeeld:
```hcl
asps = {
terraform101-asp1 = {
asp_tier = "B1"
app = {
app_name = "asp1-webapp"
https_only = true
}
}
terraform101-asp2 = {
asp_tier = "B1"
app = {
app_name = "asp2-webapp"
https_only = true
}
}
}
```
Zoals je ziet hebben we de naam van de app service plan als de key en daaronder weer een map als value. Deze map heeft asp_tier en app als key-value pairs. De asp_tier variabelen geeft ons de mogelijkheid om dit per app service plan in te stellen. Voor nu houden we het gewoon op B1. App is zelf ook weer een map met twee key-value pairs. De naam van onze web app een https_only setting.
In het geval van een map variabelen is het dus alleen nodig om de eerste variabelen de definiëren.
## Code
Check voor de code de documentatie ;P https://developer.hashicorp.com/terraform/language/meta-arguments/for_each
## Output block
Als je een output block hebt moet je de volgende wijziging aan brengen:
```hcl
output "url" {
value = {
for r, wa in azurerm_linux_web_app.<de naam van je webapp resource block> : r => wa.default_hostname
}
}
```