244 lines
No EOL
6.5 KiB
Markdown
244 lines
No EOL
6.5 KiB
Markdown
# Package Complet - Nomenclature v2.0
|
|
## L'Alliance Boréale
|
|
|
|
**Version :** 1.0
|
|
**Date :** 21 octobre 2025
|
|
**Licence :** AGPL-3.0 (code) / CC-BY-SA 4.0 (documentation)
|
|
|
|
---
|
|
|
|
## 📦 Contenu du Package
|
|
|
|
Ce package complet contient **tout ce dont vous avez besoin** pour adopter le Standard de Nomenclature v2.0 dans votre infrastructure Proxmox.
|
|
|
|
### 📚 Documentation (5 documents)
|
|
|
|
1. **Standard de Nomenclature v2.0** (60+ pages)
|
|
- Spécification complète du standard
|
|
- Format VMID, IP, noms VMs, DNS
|
|
- Tables de correspondance exhaustives
|
|
- Procédures opérationnelles
|
|
|
|
2. **Scripts de Migration et d'Audit** (documentation + 6 scripts)
|
|
- `audit-nomenclature.sh` - Audit de conformité
|
|
- `generate-dns-records.sh` - Génération zone DNS
|
|
- `generate-inventory.sh` - Génération inventaire Ansible
|
|
- `migrate-vm.sh` - Migration assistée
|
|
- `validate-vmid.sh` - Validation VMID
|
|
- `allocate-ip.sh` - Allocation IP tenants
|
|
|
|
3. **Guide de Formation** (40+ pages)
|
|
- Formation complète 2-3 heures
|
|
- 8 exercices pratiques avec solutions
|
|
- Aide-mémoire imprimable
|
|
- Test de certification (10 questions)
|
|
|
|
4. **Templates Ansible & Terraform**
|
|
- Modules Ansible (création VM, audit, compliance)
|
|
- Modules Terraform (infra + tenants)
|
|
- Exemples d'utilisation
|
|
- Makefile d'automatisation
|
|
|
|
5. **README Package** (ce document)
|
|
- Vue d'ensemble
|
|
- Quick Start
|
|
- Troubleshooting
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start (15 minutes)
|
|
|
|
### Étape 1 : Installation des Scripts
|
|
|
|
```bash
|
|
# Télécharger le package
|
|
wget https://forge.alliance-boreale.ca/nomenclature-v2-package.tar.gz
|
|
tar xzf nomenclature-v2-package.tar.gz
|
|
cd nomenclature-v2
|
|
|
|
# Installer les scripts
|
|
sudo bash scripts/install-nomenclature-tools.sh
|
|
|
|
# Configuration
|
|
# Suivre les prompts pour MEMBER_ID et DNS_DOMAIN
|
|
```
|
|
|
|
### Étape 2 : Premier Audit
|
|
|
|
```bash
|
|
# Lancer un audit de conformité
|
|
audit-nomenclature.sh
|
|
|
|
# Résultat attendu :
|
|
# ✅ VMs conformes : X
|
|
# ❌ VMs non conformes : Y
|
|
# Taux de conformité: Z%
|
|
```
|
|
|
|
### Étape 3 : Validation d'un VMID
|
|
|
|
```bash
|
|
# Tester la validation
|
|
validate-vmid.sh 02001
|
|
|
|
# Résultat :
|
|
# ✅ VMID VALIDE
|
|
# Type: Infrastructure
|
|
# Couche: 2 (Réseau)
|
|
```
|
|
|
|
### Étape 4 : Première Migration (Simulation)
|
|
|
|
```bash
|
|
# Migration en mode dry-run
|
|
DRY_RUN=true migrate-vm.sh 104 10001 \
|
|
czp-t001-web-prod-01 10.0.10.1
|
|
|
|
# Vérifier la sortie avant de lancer en réel
|
|
```
|
|
|
|
### Étape 5 : Documentation
|
|
|
|
```bash
|
|
# Lire le standard complet
|
|
less docs/Standard_Nomenclature_v2.0.md
|
|
|
|
# Lire le guide de formation
|
|
less docs/Guide_Formation_v2.0.md
|
|
```
|
|
|
|
---
|
|
|
|
## 📖 Structure du Package
|
|
|
|
```
|
|
nomenclature-v2/
|
|
│
|
|
├── README.md # Ce fichier
|
|
├── LICENSE # AGPL-3.0
|
|
│
|
|
├── docs/
|
|
│ ├── Standard_Nomenclature_v2.0.md # Spec complète
|
|
│ ├── Guide_Formation_v2.0.md # Formation
|
|
│ └── aide-memoire.pdf # Carte de référence
|
|
│
|
|
├── scripts/
|
|
│ ├── install-nomenclature-tools.sh # Installation
|
|
│ ├── audit-nomenclature.sh # Audit
|
|
│ ├── generate-dns-records.sh # DNS
|
|
│ ├── generate-inventory.sh # Inventaire
|
|
│ ├── migrate-vm.sh # Migration
|
|
│ ├── validate-vmid.sh # Validation
|
|
│ └── allocate-ip.sh # Allocation IP
|
|
│
|
|
├── ansible/
|
|
│ ├── inventory/
|
|
│ │ └── proxmox.yml # Inventaire dynamique
|
|
│ ├── playbooks/
|
|
│ │ ├── create-infra-vm.yml # Création VM infra
|
|
│ │ ├── create-tenant-vm.yml # Création VM tenant
|
|
│ │ └── audit-nomenclature.yml # Audit Ansible
|
|
│ └── roles/
|
|
│ └── nomenclature_compliance/ # Role de conformité
|
|
│
|
|
├── terraform/
|
|
│ ├── modules/
|
|
│ │ ├── infra-vm/ # Module VM infrastructure
|
|
│ │ └── tenant-vm/ # Module VM tenant
|
|
│ ├── examples/
|
|
│ │ ├── bronze-infra/ # Infrastructure Bronze
|
|
│ │ ├── silver-infra/ # Infrastructure Argent
|
|
│ │ └── tenant-stack/ # Stack tenant complète
|
|
│ ├── main.tf # Exemple principal
|
|
│ ├── variables.tf # Variables
|
|
│ └── outputs.tf # Outputs
|
|
│
|
|
├── templates/
|
|
│ ├── vm-creation-request.md # Template demande création VM
|
|
│ ├── migration-plan.md # Template plan de migration
|
|
│ └── compliance-report.md # Template rapport conformité
|
|
│
|
|
└── examples/
|
|
├── infrastructure-bronze.txt # Exemple infra Bronze
|
|
├── infrastructure-gold.txt # Exemple infra Or
|
|
└── tenant-multiservice.txt # Exemple tenant complet
|
|
```
|
|
|
|
---
|
|
|
|
## 💡 Cas d'Usage
|
|
|
|
### 1. Audit de Conformité de l'Existant
|
|
|
|
```bash
|
|
# Lancer audit
|
|
audit-nomenclature.sh > audit-$(date +%Y%m%d).log
|
|
|
|
# Analyser le rapport CSV
|
|
grep "NON CONFORME" /tmp/audit-nomenclature-*.csv
|
|
|
|
# Créer plan de migration
|
|
cat audit-*.log | grep "NON CONFORME" > migration-todo.txt
|
|
```
|
|
|
|
### 2. Création Nouvelle VM Infrastructure
|
|
|
|
**Option A : Script interactif**
|
|
```bash
|
|
ansible-playbook ansible/playbooks/create-infra-vm.yml
|
|
# Suivre les prompts
|
|
```
|
|
|
|
**Option B : Terraform**
|
|
```bash
|
|
cd terraform/examples/bronze-infra
|
|
terraform init
|
|
terraform plan
|
|
terraform apply
|
|
```
|
|
|
|
**Option C : Manuel**
|
|
```bash
|
|
# 1. Déterminer VMID
|
|
validate-vmid.sh 02003 # DNS Slave 3
|
|
|
|
# 2. Créer VM
|
|
qm create 02003 \
|
|
--name czp-infra-dns-slave3-prod-01 \
|
|
--clone debian-12-template \
|
|
--net0 virtio,bridge=vmbr0,tag=2 \
|
|
--ipconfig0 ip=10.0.2.12/24,gw=10.0.0.1
|
|
|
|
# 3. Ajouter DNS
|
|
echo "dns-slave3.infra.czp.alliance-boreale.ca. IN A 10.0.2.12" \
|
|
>> /var/lib/alliance-boreale/dns-records.zone
|
|
```
|
|
|
|
### 3. Migration Progressive
|
|
|
|
```bash
|
|
# Étape 1 : Audit initial
|
|
audit-nomenclature.sh
|
|
|
|
# Étape 2 : Créer plan (fichier CSV)
|
|
# migration-plan.csv :
|
|
# VMID_SRC,VMID_DST,NAME,IP
|
|
# 104,10001,czp-t001-web-prod-01,10.0.10.1
|
|
# 105,10011,czp-t001-api-prod-01,10.0.10.3
|
|
|
|
# Étape 3 : Migrer par lots
|
|
while IFS=, read -r src dst name ip; do
|
|
echo "Migration $src -> $dst"
|
|
DRY_RUN=true migrate-vm.sh "$src" "$dst" "$name" "$ip"
|
|
read -p "Continuer? (y/n) " -n 1 -r
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
migrate-vm.sh "$src" "$dst" "$name" "$ip"
|
|
fi
|
|
done < migration-plan.csv
|
|
```
|
|
|
|
### 4. Déploiement Nouveau Tenant
|
|
|
|
```bash
|
|
# Via Ansible
|
|
ansible-playbook ansible/playbooks/ |