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.
140 lines
3.6 KiB
Markdown
140 lines
3.6 KiB
Markdown
# Terraform Configuration - Production Environment
|
|
|
|
Ce dossier contient la configuration Terraform pour déployer l'infrastructure du homelab sur Proxmox VE.
|
|
|
|
## Structure des fichiers
|
|
|
|
- **`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)
|
|
- **`terraform.tfvars.example`** - Exemple de configuration
|
|
|
|
## Configuration rapide
|
|
|
|
### 1. Prérequis
|
|
|
|
- Terraform installé
|
|
- 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
|
|
|
|
```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
|
|
|
|
```bash
|
|
# Initialisation
|
|
terraform init
|
|
|
|
# Vérification
|
|
terraform plan
|
|
|
|
# Déploiement
|
|
terraform apply
|
|
```
|
|
|
|
## Configuration des VMs
|
|
|
|
Les VMs sont configurées dans `terraform.tfvars` :
|
|
|
|
```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"]
|
|
}
|
|
}
|
|
```
|
|
|
|
### Options disponibles
|
|
|
|
- **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)
|
|
|
|
## Templates requis
|
|
|
|
Les templates doivent être présents sur Proxmox avec les tags correspondants :
|
|
|
|
| OS | Tags requis |
|
|
|---|---|
|
|
| Ubuntu | `["ubuntu", "template"]` |
|
|
| Debian | `["debian", "template"]` |
|
|
| Alpine | `["alpine", "template"]` |
|
|
| Rocky | `["rocky", "template"]` |
|
|
| CentOS | `["centos", "template"]` |
|
|
|
|
## Fonctionnalités automatiques
|
|
|
|
- **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
|
|
|
|
### Ajouter une VM
|
|
|
|
1. Ajouter la configuration dans `terraform.tfvars`
|
|
2. Exécuter `terraform apply`
|
|
|
|
### Supprimer une VM
|
|
|
|
1. Retirer la configuration de `terraform.tfvars`
|
|
2. Exécuter `terraform apply`
|
|
|
|
### Modifier une VM
|
|
|
|
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
|
|
|
|
- **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 détaillés
|
|
|
|
```bash
|
|
TF_LOG=DEBUG terraform apply
|
|
```
|
|
|
|
## Sécurité
|
|
|
|
- Authentification par clés SSH uniquement
|
|
- Connexion sécurisée via Tailscale
|
|
- Isolation réseau des VMs
|
|
- Tokens API sécurisés |