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/11/01 11:07]
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====
 +
  
 ===locals {}=== ===locals {}===
Line 46: Line 53:
  
 ===variable "region" {}=== ===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\\
 +tuple ... uspořádaný seznam hodnot růžných typů\\
 +set ... neuspořádaný sezname unikátních hodnot stejného typu\\
 +map ... asociativní pole\\
 +object ... seznam objektů\\
 +toset()
 +
 +
 ===output "timestamp" {}=== ===output "timestamp" {}===
 +
 +===import{}===
 +===move{}===
 +===remove{}===
 +
 ===provider {}=== ===provider {}===
 +
 +===check {}===
 +data ... ziská data pro test\\
 +assert ... condition a error_message\\
 +
 +===provisioner {}===
 +local-exec\\
 +remote-exec\\
 +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 72: 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í\\
 +