Bonjour
Pour mon serveur Web, j’ai plusieurs sites Internet… et donc aussi des alldom. Ca fait beaucoup de création… Si on doit faire ca manuellement… ca peut prendre des heures…
Ces scripts doivent être adaptés à votre utilisation. Les “sleep” ne sont pas utiles. Je les utilise car ayant une centaine de domaines… j’ai besoin d’avoir le temps de voir que tout s’est bien passé.
Donc voici les scripts à créer dans votre [mono]/home/user[/mono] :
Fichier [mono]liste_domaines[/mono] qui contiendra la liste de vos domaines… :
site_one.tld
site_two.tld[/code]
[mono]script_zone_bind.sh[/mono] qui contiendra les zones BIND9 :
[code]#!/bin/sh
rougefonce='\e[0;31m'
vertfonce='\e[0;32m'
neutre='\e[0;m'
#Fonction de test d'erreur
gestion_retour() {
if [ $1 -eq 0 ]; then
echo -e "${vertfonce}[OK]${neutre} $2"
else
echo -e "${rougefonce}[ERREUR]${neutre} $2"
fi
}
#Chemin de la liste des noms de domaine
LISTE_DOMAIN_NAME="/home/user/liste_domaines"
#Chemin où seront situées les zones dans BIND (/etc/bind)
PATH_ZONE_BIND="/etc/bind"
#Date inscrite dans les zones (date du jour du lancement du script)
DATE_ZONE="2015090301"
####
echo " "
#Création des fichiers de zone
for i in `cat $LISTE_DOMAIN_NAME`;
do
echo ";
; BIND data file for local loopback interface
;
$TTL 12H
$ORIGIN $i.
@ IN SOA ns1.domaine.tld. contact.domaine.tld. (
$DATE_ZONE ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.domaine.tld.
@ IN NS ns2.domainetld
@ IN MX 10 mail.domaine.tld.
@ IN A IP_SERVEUR
ns1 IN A IP_SERVEUR
mail IN A IP_SERVEUR
* IN A IP_SERVEUR
www IN CNAME $i.
ftp IN CNAME $i." > ${PATH_ZONE_BIND}/db.$i;
if [ -f ${PATH_ZONE_BIND}/db.$i ]
then
echo -e "${vertfonce}[OK]${neutre} Le fichier \"db.$i\" a bien été créé";
else
echo -e "${rougefonce}[ERREUR]${neutre} Le fichier \"db.$i\" n'a pas été créé";
fi
sleep 2;
done
sleep 4;
#Redémarrage du service BIND9
/etc/init.d/bind9 reload
gestion_retour $? "Redémarrage du service BIND9"
#Vérification des fichiers de zone
for i in `cat $LISTE_DOMAIN_NAME`;
do
echo " "
echo "--------------- $i ------------------------"
echo " "
named-checkzone $i /etc/bind/db.$i
gestion_retour $? "Check du fichier db.\"$i\""
echo " "
nslookup $i. ns1.domaine.tld
gestion_retour $? "nslookup du domaine \"$i\""
echo " "
nslookup IP_SERVEUR $i
gestion_retour $? "Reverse du domaine \"$i\""
sleep 7;
done[/code]
Bon, a changer selon vos besoins.
Ensuite, créations de nos virtual hosts (apache) [mono]script_zone_apache.sh[/mono] (virtual host a changer selon vos besoins !!!) :
[code]#!/bin/sh
rougefonce='\e[0;31m'
vertfonce='\e[0;32m'
neutre='\e[0;m'
#Fonction de test d'erreur
gestion_retour() {
if [ $1 -eq 0 ]; then
echo -e "${vertfonce}[OK]${neutre} $2"
else
echo -e "${rougefonce}[ERREUR]${neutre} $2"
fi
}
#Chemin de la liste des noms de domaine
LISTE_DOMAIN_NAME="/home/user/liste_domaines"
#Chemin où seront situées les zones dans Apache2 (/etc/apache2/sites-available)
PATH_ZONE_APACHE="/etc/apache2/sites-available"
####
echo " "
#Création des fichiers de zone
for i in `cat $LISTE_DOMAIN_NAME`;
do
echo "
<VirtualHost *:80>
ServerAdmin contact@domaine.tld
ServerName $i
ServerAlias *.$i
DocumentRoot /var/www/votre_chemin/
<Directory /var/www/$votre_chemin>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature Off
</VirtualHost>
" > ${PATH_ZONE_APACHE}/$i.conf;
fi
if [ -f ${PATH_ZONE_APACHE}/$i.conf ]
then
echo -e "${vertfonce}[OK]${neutre} Le fichier \"$i.conf\" a bien été créé";
else
echo -e "${rougefonce}[ERREUR]${neutre} Le fichier \"$i.conf\" n'a pas été créé";
fi
sleep 2;
done
sleep 4;
#Vérification des fichiers de zone
for i in `cat $LISTE_DOMAIN_NAME`;
do
echo " "
echo "--------------- $i ------------------------"
echo " "
a2ensite $i
gestion_retour $? "Création du virtual host \"$i\""
sleep 4;
done
echo " "
service apache2 restart
service apache2 reload
gestion_retour $? "Redémarrage de Apache2"
J’espère ne pas avoir fait d’erreur en éditant. (mes fichiers étaient fait selon la configuration de mes sites, en écrivant ce message j’ai supprimé l’indentation, et certaines choses propre à mes sites …)