Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
automatizace:terraform [2024/12/02 13:38]
tomas
automatizace:terraform [2024/12/17 07:47] (current)
tomas
Line 3: Line 3:
  
 ====Komponenty==== ====Komponenty====
 +tflint ... linter - zkontroluje kód a navrhne změny kvůli čitelnosti a standartizaci kódu\\
 +terraform-doc ... automatické generování dokumentace\\
 Terratest ... testovani Tarraformovych sablon\\ Terratest ... testovani Tarraformovych sablon\\
 +Terragrunt ... umí generovat terraformy podle terragrunt parametrů - terraform soubory jsou šablona s parametrama\\
 Yeoman ... pro praci s modulama\\ Yeoman ... pro praci s modulama\\
  
Line 34: Line 37:
 terraform state list ... seznam objektů v tfstate\\ terraform state list ... seznam objektů v tfstate\\
 terraform state show vault_mount.volume ... ukáže nastavení daného objektu\\ terraform state show vault_mount.volume ... ukáže nastavení daného objektu\\
-terraform state -json ... ukáže komplet tfstate, včetně secretů\\+terraform show -json ... ukáže komplet tfstate, včetně secretů\\
 terraform force-unlock 9db590f1-b6fe-c5f2-2678-8804f089deba ... udemknutí tfstate, pokud předchozí terraform běh selže\\ terraform force-unlock 9db590f1-b6fe-c5f2-2678-8804f089deba ... udemknutí tfstate, pokud předchozí terraform běh selže\\
  
 terraform workspace list ... vylistuje worspaces - prostřředí = instance tfstate souboru\\ terraform workspace list ... vylistuje worspaces - prostřředí = instance tfstate souboru\\
 terraform workspace select prod ... vybere workspace prod a nastaví ho jako výchozí\\ terraform workspace select prod ... vybere workspace prod a nastaví ho jako výchozí\\
 +
 +====tf moduly====
 +[[terraform-aws]]\\
  
 ====tf soubory==== ====tf soubory====
  
-===datové struktury===+ 
 +===locals {}=== 
 +seznam_jmen = [for i in var.jmena: "$i.txt"]\\ 
 + 
 +===variable "region" {}=== 
 +<code>variable "muj_tuple"
 +  description = "example tuple" 
 +  type        = tuple([string, number, bool]) 
 +  default     = ["jablko", 1, true] 
 +  validation { 
 +    condition = length(var.name) 
 +    error_message = "nespravna delka" 
 +  } 
 +}</code> 
 +==datové struktury==
 list ... uspořádaný seznam hodnot stejného typu\\ list ... uspořádaný seznam hodnot stejného typu\\
 +tuple ... uspořádaný seznam hodnot růžných typů\\
 set ... neuspořádaný sezname unikátních hodnot stejného typu\\ set ... neuspořádaný sezname unikátních hodnot stejného typu\\
 map ... asociativní pole\\ map ... asociativní pole\\
Line 50: Line 71:
  
  
-===locals {}=== +===output "timestamp" {}=== 
-seznam_jmen [for i in var.jmena: "$i.txt"]\\+ 
 +===import{}=== 
 +===move{}=== 
 +===remove{}===
  
-===variable "region" {}=== 
-===output "timestamp" {}=== 
 ===provider {}=== ===provider {}===
 +
 +===check {}===
 +data ... ziská data pro test\\
 +assert ... condition a error_message\\
 +
 ===provisioner {}=== ===provisioner {}===
 local-exec\\ local-exec\\
 remote-exec\\ remote-exec\\
 file\\ file\\
 +
 ===resource {}=== ===resource {}===
 +terraform_data ... třeba local\\
 +null_resource\\
 +
 +
 for_each = toset(local.seznam_jmen) ... iterace celého resourcu\\ for_each = toset(local.seznam_jmen) ... iterace celého resourcu\\
-dynamic "statemen" {\\ +<code>dynamic "statemen"
-  for_each = var.dpc_s3_designer-postfixes\\ +  for_each = var.dpc_s3_designer-postfixes 
-  content {\\ +  content { 
-    parametr = "${statement.value}"\\ +    parametr = "${statement.value}" 
-  }\\ +  } 
-} ... iterace bloku v resourcu\\+}</code> ... iterace bloku v resourcu\\ 
 + 
 +<code>lifecycle{ 
 + precondition {} 
 + postcondition {} 
 +
 +</code> 
 +timeout ... timeout pro ukončení aktivity na resourcu, zachrání to tfstate, když to ukončí něco z venku násilně\\ 
 +provider = aws-we ... použití provideru s daným aliasem\\
  
 === podmínky a iterace === === podmínky a iterace ===
 count=var.istest == true ? 1 : 0 ... podmínka\\ count=var.istest == true ? 1 : 0 ... podmínka\\
 count=3 ... provede blok 3x\\ count=3 ... provede blok 3x\\
 +for_each = [for i in local.instances: "i.name"]\\
  
 === funkce === === funkce ===
Line 84: Line 125:
 join("-", ["aa", "bb"]) ... spojí řetězce, výsledek aa-bb\\ join("-", ["aa", "bb"]) ... spojí řetězce, výsledek aa-bb\\
 concat(["a", "c"], ["b", "c"]) ... spojí seznamy, výsledek ["a", "b", "c"]\\ concat(["a", "c"], ["b", "c"]) ... spojí seznamy, výsledek ["a", "b", "c"]\\
 +formatdate("YYYYMMDDhhmmss", timestamp()) ... časová známka a formátování data\\
 endswith("abc.txt", ".txt") ... vrátí true, když 1. řetězec končí 2. řetězcem\\ endswith("abc.txt", ".txt") ... vrátí true, když 1. řetězec končí 2. řetězcem\\
 +can ... true, když uvnitř platí\\
 +