This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
automatizace:terraform [2024/05/22 12:37] tomas [Komponenty] |
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 | + | terraform |
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 {}=== | ||
+ | seznam_jmen = [for i in var.jmena: " | ||
+ | |||
===variable " | ===variable " | ||
+ | < | ||
+ | description = " | ||
+ | type = tuple([string, | ||
+ | default | ||
+ | validation { | ||
+ | condition = length(var.name) | ||
+ | error_message = " | ||
+ | } | ||
+ | }</ | ||
+ | ==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 " | ===output " | ||
+ | |||
+ | ===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 = var.dpc_s3_designer-postfixes | ||
+ | content { | ||
+ | parametr = " | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | 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: | ||
+ | |||
+ | === funkce === | ||
+ | sensitive() ... obsah se považuje za důvěrný obsah, nezobrazí se ve výstuperch\\ | ||
+ | merge() ... sloučí mapy, poslední má přednost\\ | ||
+ | lookup() ... vrátí buď hodnotu z mapy, nebo default hodnotu\\ | ||
+ | trimsuffix(" | ||
+ | base64encode() ... zakóduje řetězed co base64\\ | ||
+ | templatefile(" | ||
+ | file(" | ||
+ | yamldecode(file(" | ||
+ | join(" | ||
+ | concat([" | ||
+ | formatdate(" | ||
+ | endswith(" | ||
+ | can ... true, když uvnitř platí\\ | ||
+ |