Update docs and rename domain suffix
The commit message should be: ``` Translate docs to French and update domain examples Change the example domain from lab.home.arnodo.fr to taila5ad8.ts.net and convert documentation to French. Remove LXC container configuration that was not being used. ``` This message captures the key changes: 1. Translation of documentation to French 2. Update of domain examples throughout the codebase 3. Removal of unused LXC container configuration The changes warrant a body since there are multiple related but distinct changes being made. The message follows the Git commit style guidelines, using imperative mood and keeping the first line under 50 characters.
This commit is contained in:
@@ -1,196 +0,0 @@
|
||||
# Fichier: terraform/prod/lxc-containers.tf
|
||||
# Description: Déploiement des conteneurs LXC sur Proxmox
|
||||
# Status: Préparatoire - À développer selon les besoins
|
||||
|
||||
# NOTE: Ce fichier est préparé pour le futur déploiement de conteneurs LXC
|
||||
# Il n'est pas encore fonctionnel et servira de base pour le développement
|
||||
|
||||
# 1. Récupération des templates LXC disponibles
|
||||
# data "proxmox_virtual_environment_container_templates" "lxc_templates" {
|
||||
# node_name = var.target_node
|
||||
# }
|
||||
|
||||
# 2. Mapping des templates LXC par distribution
|
||||
# locals {
|
||||
# # Distributions LXC supportées
|
||||
# supported_lxc_distros = toset(["ubuntu", "debian", "alpine", "centos"])
|
||||
#
|
||||
# # Map des templates LXC par distribution (à implémenter)
|
||||
# lxc_template_map = {
|
||||
# # Structure exemple :
|
||||
# # "ubuntu" = "ubuntu-20.04-standard_20.04-1_amd64.tar.gz"
|
||||
# # "debian" = "debian-11-standard_11.0-1_amd64.tar.gz"
|
||||
# # "alpine" = "alpine-3.14-default_20210623_amd64.tar.xz"
|
||||
# }
|
||||
# }
|
||||
|
||||
# 3. Création des conteneurs LXC
|
||||
# resource "proxmox_virtual_environment_container" "lxc_containers" {
|
||||
# for_each = var.lxc_containers
|
||||
#
|
||||
# # Configuration de base
|
||||
# node_name = var.target_node
|
||||
# vm_id = each.value.vm_id
|
||||
#
|
||||
# # Configuration du conteneur
|
||||
# description = "LXC Container: ${each.key}"
|
||||
# tags = concat(["terraform-managed", "lxc"], each.value.tags)
|
||||
#
|
||||
# # Configuration système
|
||||
# unprivileged = lookup(each.value, "unprivileged", true)
|
||||
# on_boot = lookup(each.value, "on_boot", true)
|
||||
# started = lookup(each.value, "started", true)
|
||||
#
|
||||
# # Configuration OS
|
||||
# operating_system {
|
||||
# template_file_id = each.value.template
|
||||
# type = lookup(each.value, "os_type", "ubuntu")
|
||||
# }
|
||||
#
|
||||
# # Configuration CPU et mémoire
|
||||
# cpu {
|
||||
# cores = each.value.cores
|
||||
# }
|
||||
#
|
||||
# memory {
|
||||
# dedicated = each.value.memory
|
||||
# swap = lookup(each.value, "swap", 512)
|
||||
# }
|
||||
#
|
||||
# # Configuration réseau
|
||||
# network_interface {
|
||||
# name = "eth0"
|
||||
# bridge = lookup(each.value, "network_bridge", "vmbr0")
|
||||
# enabled = true
|
||||
# firewall = lookup(each.value, "firewall", false)
|
||||
# }
|
||||
#
|
||||
# # Configuration stockage
|
||||
# disk {
|
||||
# datastore_id = lookup(each.value, "datastore", "local-lvm")
|
||||
# size = each.value.disk_gb
|
||||
# }
|
||||
#
|
||||
# # Configuration d'initialisation
|
||||
# initialization {
|
||||
# hostname = "${each.key}.${var.domain_suffix}"
|
||||
#
|
||||
# ip_config {
|
||||
# ipv4 {
|
||||
# address = "${each.value.ip}/${lookup(each.value, "netmask", "24")}"
|
||||
# gateway = each.value.gateway
|
||||
# }
|
||||
# }
|
||||
#
|
||||
# dns {
|
||||
# servers = lookup(each.value, "dns_servers", ["8.8.8.8", "8.8.4.4"])
|
||||
# }
|
||||
#
|
||||
# user_account {
|
||||
# keys = [file(var.admin_ssh_public_key_path)]
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
|
||||
# 4. Outputs pour les conteneurs LXC
|
||||
# output "lxc_info" {
|
||||
# description = "Informations des conteneurs LXC créés"
|
||||
# value = {
|
||||
# for k, v in proxmox_virtual_environment_container.lxc_containers : k => {
|
||||
# id = v.id
|
||||
# name = v.hostname
|
||||
# node = v.node_name
|
||||
# ip = var.lxc_containers[k].ip
|
||||
# status = v.status
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
|
||||
# ===== SECTION COMMENTÉE - EXEMPLES DE CONFIGURATION =====
|
||||
|
||||
# Exemple de configuration pour les variables LXC (à ajouter dans variables.tf) :
|
||||
# variable "lxc_containers" {
|
||||
# description = "Configuration des conteneurs LXC à déployer"
|
||||
# type = map(object({
|
||||
# # Configuration de base
|
||||
# vm_id = number
|
||||
# template = string
|
||||
# cores = number
|
||||
# memory = number
|
||||
# disk_gb = number
|
||||
# ip = string
|
||||
# gateway = string
|
||||
#
|
||||
# # Configuration optionnelle
|
||||
# os_type = optional(string, "ubuntu")
|
||||
# netmask = optional(string, "24")
|
||||
# datastore = optional(string, "local-lvm")
|
||||
# network_bridge = optional(string, "vmbr0")
|
||||
# unprivileged = optional(bool, true)
|
||||
# on_boot = optional(bool, true)
|
||||
# started = optional(bool, true)
|
||||
# firewall = optional(bool, false)
|
||||
# swap = optional(number, 512)
|
||||
# dns_servers = optional(list(string), ["8.8.8.8", "8.8.4.4"])
|
||||
# tags = optional(list(string), [])
|
||||
# }))
|
||||
# default = {}
|
||||
# }
|
||||
|
||||
# Exemple de configuration dans terraform.tfvars :
|
||||
# lxc_containers = {
|
||||
# "web-proxy" = {
|
||||
# vm_id = 200
|
||||
# template = "ubuntu-20.04-standard_20.04-1_amd64.tar.gz"
|
||||
# cores = 1
|
||||
# memory = 1024
|
||||
# disk_gb = 8
|
||||
# ip = "192.168.1.200"
|
||||
# gateway = "192.168.1.254"
|
||||
# tags = ["proxy", "nginx"]
|
||||
# }
|
||||
#
|
||||
# "monitoring-light" = {
|
||||
# vm_id = 201
|
||||
# template = "alpine-3.14-default_20210623_amd64.tar.xz"
|
||||
# cores = 1
|
||||
# memory = 512
|
||||
# disk_gb = 4
|
||||
# ip = "192.168.1.201"
|
||||
# gateway = "192.168.1.254"
|
||||
# tags = ["monitoring", "lightweight"]
|
||||
# }
|
||||
# }
|
||||
|
||||
# ===== AVANTAGES DES LXC =====
|
||||
#
|
||||
# 1. Consommation réduite de ressources par rapport aux VMs
|
||||
# 2. Démarrage plus rapide
|
||||
# 3. Idéal pour les services légers (reverse proxy, monitoring, etc.)
|
||||
# 4. Partage du kernel avec l'hôte = meilleure efficacité
|
||||
# 5. Isolation suffisante pour la plupart des cas d'usage homelab
|
||||
#
|
||||
# ===== QUAND UTILISER LXC VS VM =====
|
||||
#
|
||||
# Utiliser LXC pour :
|
||||
# - Services web légers (nginx, apache)
|
||||
# - Outils de monitoring légers
|
||||
# - Reverse proxy
|
||||
# - Services de fichiers simples
|
||||
# - Environnements de développement
|
||||
#
|
||||
# Utiliser VM pour :
|
||||
# - Services nécessitant un kernel spécifique
|
||||
# - Applications nécessitant une isolation forte
|
||||
# - Kubernetes nodes
|
||||
# - Bases de données critiques
|
||||
# - Services Windows
|
||||
|
||||
# ===== TODO POUR ACTIVATION =====
|
||||
#
|
||||
# Pour activer ce fichier :
|
||||
# 1. Décommenter le code ci-dessus
|
||||
# 2. Ajouter la variable lxc_containers dans variables.tf
|
||||
# 3. Configurer les templates LXC disponibles
|
||||
# 4. Tester avec un conteneur simple
|
||||
# 5. Documenter les templates disponibles
|
||||
@@ -1,100 +1,41 @@
|
||||
# Terraform Configuration - Production Environment
|
||||
|
||||
Ce dossier contient la configuration Terraform pour déployer l'infrastructure du homelab sur Proxmox.
|
||||
Ce dossier contient la configuration Terraform pour déployer l'infrastructure du homelab sur Proxmox VE.
|
||||
|
||||
## Structure des fichiers
|
||||
|
||||
### Fichiers principaux
|
||||
|
||||
- **`virtual-machines.tf`** - Configuration et déploiement des machines virtuelles
|
||||
- **`lxc-containers.tf`** - Configuration des conteneurs LXC (préparatoire)
|
||||
- **`01-virtual-machines.tf`** - Configuration et déploiement des machines virtuelles
|
||||
- **`02-cloud-init.tf`** - Configuration Cloud-Init pour l'initialisation automatique des VMs
|
||||
- **`providers.tf`** - Configuration des providers Terraform
|
||||
- **`variables.tf`** - Définition des variables
|
||||
- **`terraform.tfvars`** - Valeurs des variables (à personnaliser)
|
||||
- **`inventory.tf`** - Génération de l'inventaire Ansible
|
||||
- **`terraform.tfvars.example`** - Exemple de configuration
|
||||
|
||||
### Dossier templates
|
||||
|
||||
- **`cloud-init.yaml.tpl`** - Template de configuration Cloud-Init pour les VMs
|
||||
- **`inventory.tpl`** - Template pour générer l'inventaire Ansible
|
||||
|
||||
## Déploiement des VMs
|
||||
|
||||
### Configuration de base
|
||||
|
||||
Les VMs sont configurées dans le fichier `terraform.tfvars` sous la variable `virtual_machines` :
|
||||
|
||||
```hcl
|
||||
virtual_machines = {
|
||||
"nom-vm" = {
|
||||
os = "debian" # OS du template à utiliser
|
||||
cores = 2 # Nombre de CPU cores
|
||||
memory = 4096 # RAM en MB
|
||||
disk_gb = 30 # Taille du disque en GB
|
||||
ip = "192.168.1.100" # Adresse IP statique
|
||||
gateway = "192.168.1.254" # Passerelle réseau
|
||||
tags = ["monitoring"] # Tags pour l'organisation
|
||||
packages = ["curl", "vim"] # Packages à installer
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Options avancées
|
||||
|
||||
Chaque VM peut avoir des configurations optionnelles :
|
||||
|
||||
```hcl
|
||||
"nom-vm-avancee" = {
|
||||
# Configuration de base
|
||||
os = "ubuntu"
|
||||
cores = 4
|
||||
memory = 8192
|
||||
disk_gb = 50
|
||||
ip = "192.168.1.101"
|
||||
gateway = "192.168.1.254"
|
||||
|
||||
# Options avancées
|
||||
cpu_type = "host" # Type de CPU (défaut: host)
|
||||
datastore = "local-lvm" # Datastore Proxmox
|
||||
network_bridge = "vmbr0" # Bridge réseau
|
||||
username = "admin" # Utilisateur (défaut: damien)
|
||||
post_install_commands = ["apt update"] # Commandes post-installation
|
||||
|
||||
# Disques supplémentaires
|
||||
additional_disks = [
|
||||
{
|
||||
interface = "scsi1"
|
||||
datastore = "local-lvm"
|
||||
size = 100
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Templates supportés
|
||||
|
||||
Les templates doivent être présents sur Proxmox avec les tags appropriés :
|
||||
|
||||
- **ubuntu** - Ubuntu Server (tag: `ubuntu`, `template`)
|
||||
- **debian** - Debian (tag: `debian`, `template`)
|
||||
- **alpine** - Alpine Linux (tag: `alpine`, `template`)
|
||||
- **rocky** - Rocky Linux (tag: `rocky`, `template`)
|
||||
- **centos** - CentOS (tag: `centos`, `template`)
|
||||
|
||||
## Utilisation
|
||||
## Configuration rapide
|
||||
|
||||
### 1. Prérequis
|
||||
|
||||
- Terraform installé
|
||||
- Accès à l'API Proxmox
|
||||
- Templates VM configurés sur Proxmox
|
||||
- Accès à l'API Proxmox VE
|
||||
- Templates VM configurés sur Proxmox avec les tags appropriés
|
||||
- Clés SSH configurées
|
||||
- Compte Tailscale avec une clé d'authentification
|
||||
|
||||
### 2. Configuration
|
||||
|
||||
1. Copier `terraform.tfvars.example` vers `terraform.tfvars`
|
||||
2. Personnaliser les valeurs dans `terraform.tfvars`
|
||||
3. Vérifier les chemins des clés SSH
|
||||
```bash
|
||||
# Copier le fichier d'exemple
|
||||
cp terraform.tfvars.example terraform.tfvars
|
||||
|
||||
# Éditer avec vos valeurs
|
||||
vim terraform.tfvars
|
||||
```
|
||||
|
||||
Variables importantes à configurer :
|
||||
- `proxmox_url` : URL de votre serveur Proxmox
|
||||
- `proxmox_api_token` : Token d'API Proxmox
|
||||
- `tailscale_auth_key` : Clé d'authentification Tailscale
|
||||
- `virtual_machines` : Configuration de vos VMs
|
||||
|
||||
### 3. Déploiement
|
||||
|
||||
@@ -102,122 +43,98 @@ Les templates doivent être présents sur Proxmox avec les tags appropriés :
|
||||
# Initialisation
|
||||
terraform init
|
||||
|
||||
# Planification
|
||||
# Vérification
|
||||
terraform plan
|
||||
|
||||
# Application
|
||||
# Déploiement
|
||||
terraform apply
|
||||
```
|
||||
|
||||
### 4. Vérification
|
||||
## Configuration des VMs
|
||||
|
||||
```bash
|
||||
# Liste des ressources
|
||||
terraform state list
|
||||
Les VMs sont configurées dans `terraform.tfvars` :
|
||||
|
||||
# Informations des VMs
|
||||
terraform output vm_info
|
||||
```hcl
|
||||
virtual_machines = {
|
||||
"monitoring" = {
|
||||
os = "debian"
|
||||
cores = 2
|
||||
memory = 4096
|
||||
disk_gb = 30
|
||||
ip = "192.168.1.161"
|
||||
gateway = "192.168.1.254"
|
||||
tags = ["monitoring"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Intégration Ansible
|
||||
### Options disponibles
|
||||
|
||||
L'inventaire Ansible est généré automatiquement dans `../../ansible/inventory/hosts.ini`.
|
||||
- **os** : Template à utiliser (ubuntu, debian, alpine, rocky, centos)
|
||||
- **cores** : Nombre de cœurs CPU
|
||||
- **memory** : RAM en MB
|
||||
- **disk_gb** : Taille du disque principal en GB
|
||||
- **ip** : Adresse IP statique
|
||||
- **gateway** : Passerelle réseau
|
||||
- **tags** : Tags pour l'organisation
|
||||
- **additional_disks** : Disques supplémentaires (optionnel)
|
||||
- **username** : Utilisateur de la VM (optionnel, défaut: root)
|
||||
|
||||
### Groupes générés automatiquement
|
||||
## Templates requis
|
||||
|
||||
- **Par OS** : `ubuntu`, `debian`, `alpine`, etc.
|
||||
- **Par tags** : groupes basés sur les tags des VMs
|
||||
- **Par pattern de nom** : `monitoring`, `web`, `database`, `kubernetes`
|
||||
Les templates doivent être présents sur Proxmox avec les tags correspondants :
|
||||
|
||||
### Utilisation avec Ansible
|
||||
| OS | Tags requis |
|
||||
|---|---|
|
||||
| Ubuntu | `["ubuntu", "template"]` |
|
||||
| Debian | `["debian", "template"]` |
|
||||
| Alpine | `["alpine", "template"]` |
|
||||
| Rocky | `["rocky", "template"]` |
|
||||
| CentOS | `["centos", "template"]` |
|
||||
|
||||
```bash
|
||||
# Test de connectivité
|
||||
ansible all -i inventory/hosts.ini -m ping
|
||||
## Fonctionnalités automatiques
|
||||
|
||||
# Playbook sur un groupe
|
||||
ansible-playbook -i inventory/hosts.ini playbooks/common.yml --limit monitoring
|
||||
```
|
||||
|
||||
## Conteneurs LXC (Futur)
|
||||
|
||||
Le fichier `lxc-containers.tf` est préparé pour le déploiement de conteneurs LXC.
|
||||
Il n'est pas encore fonctionnel mais servira de base pour le développement futur.
|
||||
|
||||
### Avantages des LXC
|
||||
|
||||
- Consommation réduite de ressources
|
||||
- Démarrage plus rapide
|
||||
- Idéal pour les services légers
|
||||
|
||||
### Cas d'usage recommandés
|
||||
|
||||
**LXC pour :**
|
||||
- Reverse proxy (nginx)
|
||||
- Monitoring léger
|
||||
- Services web simples
|
||||
- Environnements de développement
|
||||
|
||||
**VM pour :**
|
||||
- Kubernetes nodes
|
||||
- Bases de données critiques
|
||||
- Services nécessitant une isolation forte
|
||||
- Applications avec besoins kernel spécifiques
|
||||
- **Cloud-Init** : Configuration automatique des VMs au premier démarrage
|
||||
- **Tailscale** : Installation et connexion automatique au réseau Tailscale
|
||||
- **SSH** : Configuration des clés SSH pour l'accès sécurisé
|
||||
- **QEMU Guest Agent** : Installation automatique pour une meilleure intégration
|
||||
|
||||
## Maintenance
|
||||
|
||||
### Mise à jour des VMs
|
||||
### Ajouter une VM
|
||||
|
||||
```bash
|
||||
# Modifier terraform.tfvars
|
||||
# Puis appliquer les changements
|
||||
terraform plan
|
||||
terraform apply
|
||||
```
|
||||
1. Ajouter la configuration dans `terraform.tfvars`
|
||||
2. Exécuter `terraform apply`
|
||||
|
||||
### Suppression d'une VM
|
||||
### Supprimer une VM
|
||||
|
||||
```bash
|
||||
# Retirer la VM de terraform.tfvars
|
||||
# Puis appliquer
|
||||
terraform apply
|
||||
```
|
||||
1. Retirer la configuration de `terraform.tfvars`
|
||||
2. Exécuter `terraform apply`
|
||||
|
||||
### Sauvegarde de l'état
|
||||
### Modifier une VM
|
||||
|
||||
```bash
|
||||
# Sauvegarde manuelle
|
||||
cp terraform.tfstate terraform.tfstate.backup.$(date +%Y%m%d)
|
||||
```
|
||||
1. Modifier la configuration dans `terraform.tfvars`
|
||||
2. Exécuter `terraform plan` pour voir les changements
|
||||
3. Exécuter `terraform apply`
|
||||
|
||||
## Dépannage
|
||||
|
||||
### Problèmes courants
|
||||
|
||||
1. **Template non trouvé** : Vérifier que le template existe sur Proxmox avec les bons tags
|
||||
2. **IP déjà utilisée** : Vérifier les conflits d'adresses IP
|
||||
3. **Clé SSH** : Vérifier le chemin vers la clé publique SSH
|
||||
- **Template non trouvé** : Vérifier les tags sur Proxmox
|
||||
- **IP déjà utilisée** : Vérifier les conflits d'adresses
|
||||
- **Erreur SSH** : Vérifier le chemin de la clé publique
|
||||
- **Tailscale** : Vérifier la validité de la clé d'authentification
|
||||
|
||||
### Logs utiles
|
||||
### Logs détaillés
|
||||
|
||||
```bash
|
||||
# Logs Terraform détaillés
|
||||
TF_LOG=DEBUG terraform apply
|
||||
|
||||
# État des ressources
|
||||
terraform show
|
||||
```
|
||||
|
||||
## Sécurité
|
||||
|
||||
- Les clés SSH privées ne sont jamais stockées dans le code
|
||||
- Les tokens API sont dans des variables d'environnement
|
||||
- Les VMs sont configurées avec des utilisateurs non-root
|
||||
- SSH par mot de passe est désactivé
|
||||
|
||||
## Support
|
||||
|
||||
Pour toute question ou problème, consulter :
|
||||
- Documentation Terraform Proxmox Provider
|
||||
- Logs Proxmox (`/var/log/pveproxy/`)
|
||||
- État Terraform (`terraform show`)
|
||||
- Authentification par clés SSH uniquement
|
||||
- Connexion sécurisée via Tailscale
|
||||
- Isolation réseau des VMs
|
||||
- Tokens API sécurisés
|
||||
@@ -11,7 +11,7 @@
|
||||
#############################
|
||||
|
||||
# URL de votre serveur Proxmox (REQUIS)
|
||||
proxmox_url = "https://pve01.lab.home.arnodo.fr:8006"
|
||||
proxmox_url = "https://pve01.taila5ad8.ts.net:8006"
|
||||
|
||||
# Token API Proxmox (REQUIS - À configurer dans Proxmox)
|
||||
# Créer dans : Datacenter -> Permissions -> API Tokens
|
||||
@@ -25,7 +25,7 @@ target_node = "pve01"
|
||||
#############################
|
||||
|
||||
# Suffixe de domaine pour les VMs
|
||||
domain_suffix = "lab.home.arnodo.fr"
|
||||
domain_suffix = "taila5ad8.ts.net"
|
||||
|
||||
#############################
|
||||
# Configuration SSH
|
||||
@@ -37,143 +37,60 @@ admin_ssh_public_key_path = "~/.ssh/keys/id_rsa.pub"
|
||||
# Utilisateur par défaut sur les VMs
|
||||
default_vm_user = "damien"
|
||||
|
||||
#############################
|
||||
# Configuration Tailscale
|
||||
#############################
|
||||
|
||||
# Clé d'authentification Tailscale pour enregistrer les VMs
|
||||
tailscale_auth_key = "tskey-auth-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||
|
||||
#############################
|
||||
# Machines virtuelles
|
||||
#############################
|
||||
|
||||
virtual_machines = {
|
||||
# Exemple VM de monitoring
|
||||
"vision" = {
|
||||
"monitoring" = {
|
||||
os = "debian"
|
||||
cores = 2
|
||||
memory = 4096
|
||||
disk_gb = 30
|
||||
ip = "192.168.1.161"
|
||||
gateway = "192.168.1.254"
|
||||
tags = ["monitoring", "grafana"]
|
||||
tags = ["monitoring"]
|
||||
}
|
||||
|
||||
# Exemples d'autres VMs (décommentez et adaptez selon vos besoins)
|
||||
# Exemple 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"]
|
||||
}
|
||||
|
||||
# # 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"]
|
||||
# }
|
||||
# Exemple base de données avec disque supplémentaire
|
||||
"database" = {
|
||||
os = "debian"
|
||||
cores = 4
|
||||
memory = 8192
|
||||
disk_gb = 50
|
||||
ip = "192.168.1.163"
|
||||
gateway = "192.168.1.254"
|
||||
tags = ["database", "postgresql"]
|
||||
|
||||
# # 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"]
|
||||
# }
|
||||
additional_disks = [
|
||||
{
|
||||
interface = "scsi1"
|
||||
datastore = "local-lvm"
|
||||
size = 100
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
#############################
|
||||
# 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
|
||||
# memory = 1024
|
||||
# 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
|
||||
#############################
|
||||
@@ -185,15 +102,8 @@ monitoring_vms = {}
|
||||
# - 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
|
||||
# - Database : 4+ CPU, 8GB+ RAM, 50GB+ disque
|
||||
# - Kubernetes : 4+ CPU, 4GB+ RAM, 40GB+ disque
|
||||
|
||||
@@ -30,9 +30,9 @@ variable "admin_ssh_public_key_path" {
|
||||
}
|
||||
|
||||
variable "domain_suffix" {
|
||||
description = "Suffixe de domaine pour les VMs (ex: lab.home.arnodo.fr)"
|
||||
description = "Suffixe de domaine pour les VMs (ex: taila5ad8.ts.net)"
|
||||
type = string
|
||||
default = "lab.home.arnodo.fr"
|
||||
default = "taila5ad8.ts.net"
|
||||
}
|
||||
|
||||
variable "default_vm_user" {
|
||||
|
||||
Reference in New Issue
Block a user