This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
automatizace:terraform [2024/12/02 14:22] 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 | + | 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==== | ||
| Line 51: | Line 57: | ||
| type = tuple([string, | type = tuple([string, | ||
| default | default | ||
| + | validation { | ||
| + | condition = length(var.name) | ||
| + | error_message = " | ||
| + | } | ||
| }</ | }</ | ||
| ==datové struktury== | ==datové struktury== | ||
| Line 62: | Line 72: | ||
| ===output " | ===output " | ||
| + | |||
| + | ===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\\ | ||
| < | < | ||
| Line 75: | Line 100: | ||
| } | } | ||
| }</ | }</ | ||
| + | |||
| + | < | ||
| + | | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | 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(" | join(" | ||
| concat([" | concat([" | ||
| + | formatdate(" | ||
| endswith(" | endswith(" | ||
| + | can ... true, když uvnitř platí\\ | ||
| + | |||