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 14:20]
tomas [tf soubory]
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====
Line 47: Line 53:
  
 ===variable "region" {}=== ===variable "region" {}===
-variable "muj_tuple" {+<code>variable "muj_tuple" {
   description = "example tuple"   description = "example tuple"
   type        = tuple([string, number, bool])   type        = tuple([string, number, bool])
   default     = ["jablko", 1, true]   default     = ["jablko", 1, true]
-}+  validation { 
 +    condition = length(var.name) 
 +    error_message = "nespravna delka" 
 +  } 
 +}</code>
 ==datové struktury== ==datové struktury==
 list ... uspořádaný seznam hodnot stejného typu\\ list ... uspořádaný seznam hodnot stejného typu\\
Line 62: Line 72:
  
 ===output "timestamp" {}=== ===output "timestamp" {}===
 +
 +===import{}===
 +===move{}===
 +===remove{}===
 +
 ===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 ===
Line 92: 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í\\
 +