5.5 KiB
5.5 KiB
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.csvpour la liste des zones - Traitement automatique des fichiers
dns_records_<zone>.csvcorrespondants
✅ 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
- Avoir exécuté
exportDns.ps1sur Windows pour générer les fichiers CSV - Avoir transféré le dossier
Transfert/Dns/sur le serveur Samba4 - Samba4 doit être installé et configuré
Exécution
# Se placer dans le répertoire de migration
cd /data/apps/Migration
# Exécuter le script
./importDns.sh
Interface interactive
-
Vérification des prérequis : Le script vérifie automatiquement la présence de
samba-toolet des fichiers CSV -
Credentials :
- Nom d'utilisateur (défaut: Administrator)
- Mot de passe (saisie masquée)
- Validation automatique des credentials
-
Mode d'exécution :
- Option 1 : Dry-run (affiche les commandes sans les exécuter)
- Option 2 : Import réel
-
Traitement :
- Création automatique des zones DNS
- Import des enregistrements avec feedback détaillé
- Statistiques finales
Structure des fichiers CSV attendus
dns_zones.csv
"ZoneName","ZoneType","IsReverse","IsPrimary","DynamicUpdate","RecordCount"
"example.com","Forward","False","True","Secure","25"
dns_records_.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
$ ./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 !