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

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

try_prompt

generate_helper
disclaimerOnPageApi

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