Cleaning VM Creation

- Remove useless tf files
- add extra disks capacity
This commit is contained in:
darnodo
2025-06-17 20:02:00 +02:00
parent 738294875a
commit 64f24ad742
11 changed files with 781 additions and 156 deletions

View File

@@ -1,47 +1,199 @@
# Fichier: terraform/prod/terraform.tfvars.example
# terraform.tfvars.example
# Fichier d'exemple pour la configuration Terraform du homelab
#
# Copiez ce fichier vers terraform.tfvars et remplissez les valeurs appropriées.
# Le fichier terraform.tfvars est ignoré par Git (voir .gitignore) pour protéger les informations sensibles.
# Instructions :
# 1. Copiez ce fichier vers terraform.tfvars
# 2. Personnalisez les valeurs selon votre environnement
# 3. Le fichier terraform.tfvars est ignoré par Git pour la sécurité
# Le nom du noeud Proxmox sur lequel déployer les VMs.
# Par défaut : "pve01"
# target_node = "pve01"
#############################
# Configuration Proxmox
#############################
# URL du noeud Proxmox sur lequel déployer les VMs. (Requis)
# Exemple : "https://votre-proxmox-ip-ou-hostname:8006"
proxmox_url = "https://proxmox.example.com:8006"
# URL de votre serveur Proxmox (REQUIS)
proxmox_url = "https://pve01.lab.home.arnodo.fr:8006"
# Token pour accéder à l'API Proxmox. (Requis et sensible)
# Créez un token dans Proxmox (Datacenter -> Permissions -> API Tokens)
# Exemple : "utilisateur@pve!nom_token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# Token API Proxmox (REQUIS - À configurer dans Proxmox)
# Créer dans : Datacenter -> Permissions -> API Tokens
proxmox_api_token = "terraform@pve!terraform_token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
# Chemin vers le fichier de la clé SSH publique à autoriser pour l'utilisateur admin sur les VMs.
# Par défaut : "~/.ssh/keys/id_rsa.pub"
# admin_ssh_public_key_path = "~/.ssh/id_rsa.pub"
# Nœud Proxmox cible (défaut: pve01)
target_node = "pve01"
# Une map décrivant les VMs pour la supervision.
# Vous pouvez laisser cette map vide si vous ne souhaitez pas déployer de VMs de supervision
# ou la remplir comme dans l'exemple ci-dessous.
#
# monitoring_vms = {
# "prometheus" = {
# os = "ubuntu" # Nom du template ou de l'image ISO
# cores = 2
# cpu_type = "host" # Type de CPU (kvm64, host, etc.)
# memory = 2048 # En Mo
# disk_gb = 20 # En Go
# ip = "192.168.1.50/24" # IP statique avec le masque CIDR
# gateway = "192.168.1.1" # Passerelle
# },
# "grafana" = {
# os = "debian"
#############################
# Configuration réseau
#############################
# Suffixe de domaine pour les VMs
domain_suffix = "lab.home.arnodo.fr"
#############################
# Configuration SSH
#############################
# Chemin vers votre clé SSH publique
admin_ssh_public_key_path = "~/.ssh/keys/id_rsa.pub"
# Utilisateur par défaut sur les VMs
default_vm_user = "damien"
#############################
# Machines virtuelles
#############################
virtual_machines = {
# Exemple VM de monitoring
"vision" = {
os = "debian"
cores = 2
memory = 4096
disk_gb = 30
ip = "192.168.1.161"
gateway = "192.168.1.254"
tags = ["monitoring", "grafana"]
}
# Exemples d'autres VMs (décommentez et adaptez selon vos besoins)
# # Serveur web
# "webserver" = {
# os = "ubuntu"
# cores = 2
# memory = 2048
# disk_gb = 20
# ip = "192.168.1.162"
# gateway = "192.168.1.254"
# tags = ["web", "nginx"]
# }
# # Base de données
# "database" = {
# os = "debian"
# cores = 4
# memory = 8192
# disk_gb = 50
# ip = "192.168.1.163"
# gateway = "192.168.1.254"
# tags = ["database", "postgresql"]
#
# # Disque supplémentaire pour les données
# additional_disks = [
# {
# interface = "scsi1"
# datastore = "local-lvm"
# size = 100
# }
# ]
# }
# # Node Kubernetes master
# "k8s-master" = {
# os = "ubuntu"
# cores = 4
# memory = 4096
# disk_gb = 40
# ip = "192.168.1.170"
# gateway = "192.168.1.254"
# tags = ["kubernetes", "master"]
# }
# # Node Kubernetes worker
# "k8s-worker1" = {
# os = "ubuntu"
# cores = 4
# memory = 8192
# disk_gb = 60
# ip = "192.168.1.171"
# gateway = "192.168.1.254"
# tags = ["kubernetes", "worker"]
# }
# # Serveur de fichiers/NAS
# "fileserver" = {
# os = "debian"
# cores = 2
# memory = 4096
# disk_gb = 40
# ip = "192.168.1.180"
# gateway = "192.168.1.254"
# tags = ["storage", "nas"]
#
# # Multiples disques pour le stockage
# additional_disks = [
# {
# interface = "scsi1"
# datastore = "local-lvm"
# size = 500
# },
# {
# interface = "scsi2"
# datastore = "local-lvm"
# size = 500
# }
# ]
# }
# # VM de développement
# "devbox" = {
# os = "ubuntu"
# cores = 4
# memory = 8192
# disk_gb = 80
# ip = "192.168.1.190"
# gateway = "192.168.1.254"
# tags = ["development", "docker"]
# }
}
#############################
# Conteneurs LXC (Futur)
#############################
# Configuration préparée pour les conteneurs LXC
# Actuellement désactivée - sera implémentée dans une future version
# lxc_containers = {
# # Exemple proxy léger
# "nginx-proxy" = {
# vm_id = 200
# template = "ubuntu-20.04-standard"
# cores = 1
# cpu_type = "kvm64"
# memory = 1024
# disk_gb = 10
# ip = "192.168.1.51/24"
# gateway = "192.168.1.1"
# disk_gb = 8
# ip = "192.168.1.200"
# gateway = "192.168.1.254"
# tags = ["proxy", "nginx"]
# }
# }
#############################
# Maintien compatibilité (deprecated)
#############################
# Ancienne variable - sera supprimée dans une future version
# Utilisez virtual_machines à la place
monitoring_vms = {}
#############################
# Notes de configuration
#############################
# Templates requis sur Proxmox :
# - Template Ubuntu avec tags : ["ubuntu", "template"]
# - Template Debian avec tags : ["debian", "template"]
# - Template Alpine avec tags : ["alpine", "template"]
# - Template Rocky avec tags : ["rocky", "template"]
# - Template CentOS avec tags : ["centos", "template"]
# Réseau recommandé :
# - VLAN/Bridge : vmbr0
# - Plage IP : 192.168.1.0/24
# - Passerelle : 192.168.1.254
# - DNS : 8.8.8.8, 8.8.4.4 (ou votre DNS local)
# Ressources recommandées par type de service :
# - Monitoring : 2 CPU, 4GB RAM, 30GB disque
# - Web server : 2 CPU, 2GB RAM, 20GB disque
# - Database : 4 CPU, 8GB RAM, 50GB+ disque
# - Kubernetes : 4 CPU, 4GB+ RAM, 40GB+ disque
# - Development : 4 CPU, 8GB RAM, 80GB disque