164 lines
5.5 KiB
Markdown
164 lines
5.5 KiB
Markdown
# Documentation - Script importDns.sh
|
|
|
|
## Vue d'ensemble
|
|
|
|
Le script `importDns.sh` est la nouvelle version améliorée pour importer les zones et enregistrements DNS depuis les fichiers CSV vers Samba4. Il remplace l'ancien script généré automatiquement par une approche plus flexible et maintenable.
|
|
|
|
## Fonctionnalités
|
|
|
|
### ✅ Import basé sur CSV
|
|
- Utilise les fichiers CSV générés par `exportDns.ps1`
|
|
- Lecture du fichier `Transfert/Dns/dns_zones.csv` pour la liste des zones
|
|
- Traitement automatique des fichiers `dns_records_<zone>.csv` correspondants
|
|
|
|
### ✅ Interface utilisateur améliorée
|
|
- **Affichage coloré** avec codes de couleur pour les différents types de messages
|
|
- **Demande interactive** des credentials Samba4
|
|
- **Mode dry-run** pour tester avant l'import réel
|
|
- **Progression détaillée** avec compteurs de réussite/échec
|
|
|
|
### ✅ Gestion robuste des erreurs
|
|
- **Vérifications préalables** des prérequis
|
|
- **Validation des credentials** avant de commencer
|
|
- **Création automatique des zones** si elles n'existent pas
|
|
- **Continuation** même en cas d'erreurs sur des enregistrements individuels
|
|
|
|
### ✅ Filtrage intelligent
|
|
- **Ignore les zones reverse** (in-addr.arpa)
|
|
- **Traite seulement les zones Primary Forward**
|
|
- **Exclut les enregistrements système** (@, SOA, NS, _service)
|
|
|
|
## Utilisation
|
|
|
|
### Prérequis
|
|
1. Avoir exécuté `exportDns.ps1` sur Windows pour générer les fichiers CSV
|
|
2. Avoir transféré le dossier `Transfert/Dns/` sur le serveur Samba4
|
|
3. Samba4 doit être installé et configuré
|
|
|
|
### Exécution
|
|
```bash
|
|
# Se placer dans le répertoire de migration
|
|
cd /data/apps/Migration
|
|
|
|
# Exécuter le script
|
|
./importDns.sh
|
|
```
|
|
|
|
### Interface interactive
|
|
|
|
1. **Vérification des prérequis** : Le script vérifie automatiquement la présence de `samba-tool` et des fichiers CSV
|
|
|
|
2. **Credentials** :
|
|
- Nom d'utilisateur (défaut: Administrator)
|
|
- Mot de passe (saisie masquée)
|
|
- Validation automatique des credentials
|
|
|
|
3. **Mode d'exécution** :
|
|
- **Option 1** : Dry-run (affiche les commandes sans les exécuter)
|
|
- **Option 2** : Import réel
|
|
|
|
4. **Traitement** :
|
|
- Création automatique des zones DNS
|
|
- Import des enregistrements avec feedback détaillé
|
|
- Statistiques finales
|
|
|
|
## Structure des fichiers CSV attendus
|
|
|
|
### dns_zones.csv
|
|
```csv
|
|
"ZoneName","ZoneType","IsReverse","IsPrimary","DynamicUpdate","RecordCount"
|
|
"example.com","Forward","False","True","Secure","25"
|
|
```
|
|
|
|
### dns_records_<zone>.csv
|
|
```csv
|
|
"Name","Type","TTL","Value","Timestamp"
|
|
"www","A","3600","192.168.1.100","Static"
|
|
"mail","CNAME","3600","www.example.com.","Static"
|
|
```
|
|
|
|
## Avantages par rapport à l'ancien script
|
|
|
|
| Aspect | Ancien script | Nouveau script |
|
|
|--------|---------------|----------------|
|
|
| **Source des données** | Hardcodé dans le script | Fichiers CSV flexibles |
|
|
| **Maintenance** | Modification du code | Modification des CSV |
|
|
| **Credentials** | Hardcodés ou répétés | Demande interactive |
|
|
| **Mode test** | Non disponible | Mode dry-run intégré |
|
|
| **Gestion d'erreurs** | Basique | Robuste avec continuation |
|
|
| **Interface** | Texte simple | Interface colorée et claire |
|
|
| **Création de zones** | Manuelle | Automatique avec vérification |
|
|
| **Filtrage** | Limité | Intelligent (types de zones/enregistrements) |
|
|
|
|
## Messages et codes de retour
|
|
|
|
### Codes couleur
|
|
- 🔵 **[INFO]** : Messages informatifs (bleu)
|
|
- 🟢 **[OK]** : Opérations réussies (vert)
|
|
- 🟡 **[WARNING]** : Avertissements (jaune)
|
|
- 🔴 **[ERREUR]** : Erreurs (rouge)
|
|
|
|
### Codes de sortie
|
|
- **0** : Succès complet
|
|
- **1** : Erreur de prérequis ou credentials invalides
|
|
|
|
## Dépannage
|
|
|
|
### "samba-tool non trouvé"
|
|
- Vérifier que Samba4 est installé : `which samba-tool`
|
|
- Installer Samba4 si nécessaire
|
|
|
|
### "Répertoire DNS non trouvé"
|
|
- Vérifier que le dossier `Transfert/Dns/` existe
|
|
- Transférer les fichiers depuis Windows si nécessaire
|
|
|
|
### "Credentials invalides"
|
|
- Vérifier le nom d'utilisateur et mot de passe
|
|
- S'assurer que l'utilisateur a les droits administrateur Samba4
|
|
|
|
### "Impossible de créer la zone"
|
|
- Vérifier les droits de l'utilisateur
|
|
- Contrôler les logs Samba : `journalctl -u samba-ad-dc`
|
|
|
|
## Exemple d'exécution
|
|
|
|
```bash
|
|
$ ./importDns.sh
|
|
==================================================================================
|
|
IMPORT DNS VERS SAMBA4
|
|
==================================================================================
|
|
|
|
[INFO] Vérification des prérequis...
|
|
[OK] Prérequis validés
|
|
[INFO] Configuration des credentials Samba4
|
|
|
|
Nom d'utilisateur administrateur Samba [Administrator]:
|
|
Mot de passe pour Administrator:
|
|
|
|
[INFO] Test des credentials...
|
|
[OK] Credentials validés pour Administrator
|
|
|
|
Modes d'exécution disponibles:
|
|
1. Dry-run (afficher les commandes sans les exécuter)
|
|
2. Import réel (exécuter les commandes)
|
|
|
|
Choisissez le mode [1/2]: 2
|
|
[INFO] Mode import réel activé
|
|
|
|
[INFO] Début de l'import DNS depuis les fichiers CSV
|
|
|
|
===================================================================================
|
|
[INFO] Traitement de la zone: example.com
|
|
|
|
[INFO] Création de la zone: example.com
|
|
[OK] Zone example.com créée avec succès
|
|
[INFO] Traitement des enregistrements pour la zone: example.com
|
|
[OK] Ajout enregistrement: www (A) → 192.168.1.100
|
|
[OK] Ajout enregistrement: mail (CNAME) → www.example.com.
|
|
[INFO] Zone example.com: 2/2 enregistrements traités avec succès
|
|
|
|
===================================================================================
|
|
[OK] Import terminé: 1/1 zones traitées
|
|
|
|
[OK] Script d'import DNS terminé avec succès !
|
|
``` |