slogan3

Optimaliseer mijn Terraform modules voor herbruikbaarheid en onderhoudbaarheid

description

Met deze prompt krijg ik gericht advies over het structureren van mijn Terraform modules, wat leidt tot betere code-organisatie, eenvoudiger beheer en snellere implementaties. Het voorkomt veelvoorkomende fouten en zorgt dat mijn infrastructuur makkelijker schaalbaar is.

prompt

try_prompt

Help me met het ontwerpen van Terraform modules die ik gemakkelijk kan hergebruiken en onderhouden. Mijn infrastructuurcomponent ... more
generate_helper
disclaimerOnPageApi image_legal_disclaimer...

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een richtlijn voor het ontwerpen van herbruikbare en onderhoudsvriendelijke Terraform-modules voor jouw infrastructuurcomponenten: 1. Modulaire structuur opzetten - Maak aparte modules voor: - Virtuele machines (VMs) - Virtuele netwerken (VNETs) - Storage-accounts - Plaats alle modules in een centrale map (bijvoorbeeld `modules/`) met submappen per component. 2. Herbruikbare variabelen definiëren - Gebruik `variables.tf` in elke module om configuratieparameters te specificeren. - Voorbeeld voor een VM: ```hcl variable "vm_name" { description = "Naam van de virtuele machine" type = string } variable "location" { description = "Azure regio" type = string } variable "size" { description = "VM grootte" type = string default = "Standard_DS1_v2" } variable "admin_username" { description = "Administrator gebruikersnaam" type = string } variable "admin_password" { description = "Administrator wachtwoord" type = string sensitive = true } ``` 3. Beveiliging en GDPR-compliance - Gebruik encryptie voor opslagaccounts: ```hcl resource "azurerm_storage_account" "storage" { name = var.storage_name resource_group_name = var.resource_group_name location = var.location account_tier = "Standard" account_replication_type = "LRS" enable_https_traffic_only = true blob_properties { cors_rules = [] } network_rules { default_action = "Deny" ip_rules = var.ip_rules } encryption { services { blob { enabled = true key_type = "Account" } file { enabled = true } } key_source = "Microsoft.Storage" } } ``` - Zorg dat gevoelige gegevens (wachtwoorden, encryptiesleutels) via `sensitive` variabelen worden beheerd en niet in logs zichtbaar zijn. 4. Netwerkconfiguratie - Maak een module voor VNETs met subnetten, NSG's en passende beveiligingsregels. - Implementeer netwerkbeperkingen conform GDPR-vereisten (bijvoorbeeld beperken van toegang). 5. Documentatie en gebruik - Voeg `README.md` toe voor elke module met voorbeelden. - Gebruik `outputs.tf` om nuttige informatie zoals IP-adressen door te geven. 6. Onderhoud en schaalbaarheid - Gebruik variabele standaarden en default-waarden waar mogelijk. - Voeg condities toe voor optionele componenten. - Versioneer modules via Git en gebruik versies in je hoofdconfiguratie. 7. Voorbeeld structuur ``` infrastructuur/ ├── main.tf ├── variables.tf ├── outputs.tf └── modules/ ├── vm/ │ ├── main.tf │ ├── variables.tf │ └── outputs.tf ├── network/ │ ├── main.tf │ ├── variables.tf │ └── outputs.tf └── storage/ ├── main.tf ├── variables.tf └── outputs.tf ``` Door deze aanpak te volgen, creëer je een overzichtelijke, herbruikbare en onderhoudsvriendelijke Terraform-structuur die voldoet aan GDPR en encryptie-eisen. Wil je concrete codevoorbeelden voor een specifiek component?
provider: deepseek
model: deepseek-chat
no_answer_for_language
error: Generation failed [deepseek] prompt_id=2070 locale=nl err=DeepSeek connection/timeout | Generation failed [deepseek] prompt_id=2070 locale=en err=DeepSeek connection/timeout | Generation failed [deepseek] prompt_id=2070 locale=de err=DeepSeek connection/timeout | Generation failed [deepseek] prompt_id=2070 locale=fr err=DeepSeek connection/timeout | Generation failed [deepseek] prompt_id=2070 locale=pt err=DeepSeek connection/timeout | Generation failed [deepseek] prompt_id=2070 locale=es err=DeepSeek connection/timeout | Generation failed [deepseek] prompt_id=2070 locale=zh err=DeepSeek connection/timeout