La machine $nom_machine_client ne vous est pas déléguée\n";
}
else {
$corrige_mac_client=strtolower(strtr($mac_machine_client,":","-"));
if(file_exists("/tftpboot/pxelinux.cfg/01-".$corrige_mac_client)) {
echo "Suppression d'une programmation précédente pour $nom_machine_client
\n";
//unlink("/tftpboot/pxelinux.cfg/01-".$corrige_mac);
$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'menage_tftpboot_pxelinux_cfg' 'mac=$corrige_mac_client'", $retour);
if(count($retour)>0){
for($j=0;$j\n";
}
}
echo "
\n";
}
}
}
}
flush();
$temoin_erreur="n";
$num_op=get_free_se3_action_tftp_num_op();
$id_microtime=preg_replace('/[^0-9]/','_',microtime());
$chemin="/usr/share/se3/scripts";
if($type_os=='xp') {
echo "Rappel : Il faut que les postes émetteur et récepteur(s) bootent en priorité sur le réseau (PXE) pour que le redémarrage se fasse sur ".$distrib." et que le clonage s'ensuive.
\n";
echo "Informations sur la suite : Le poste émetteur va être sorti du domaine, renommé en 'clone' et préparé pour une réintégration après clonage,...
\n";
echo "L'opération prend couramment 5 minutes avant que la préparation soit effectuée et que la fin de la présente page HTML s'affiche.
\n";
echo "Soyez patient...
\n";
flush();
// on lance la preparation du poste emetteur
$resultat=system("/usr/bin/sudo /usr/share/se3/scripts/integreDomaine.sh clone clone $ip_machine $nom_machine adminse3 $xppass > /dev/null", $retint);
if ($retint) {
echo "ECHEC de la preparation du poste
\n";
$temoin_erreur="y";
} else {
echo "on attend le rapport de fin de la preparation
";
$sql="SELECT COUNT(*) FROM se3_tftp_rapports WHERE id='$id_emetteur' AND tache='preparation' AND statut='SUCCES' AND date>(now()-100);";
$num=0;
$incr=0;
while ($num==0) {
$count=mysql_query($sql);
$num=mysql_result($count, 0);
echo ".";
sleep(10);
if ($incr++==60) {
echo "
Probleme : pas de rapport remonte pour la preparation du clonage. Si le poste emetteur n'a pas reboote en adminstrateur local, relancez le clonage, connectez vous en administrateur local et lancez netinst\\shutdown.cmd";
$temoin_erreur="y";
break;
}
}
if ("$temoin_erreur"=="n"){
echo "
preparation reussie
";
}
}
}
if($distrib=='slitaz') {
$ajout_kernel="";
}
else {
$ajout_kernel="|kernel=$sysresccd_kernel";
}
}
if ("$temoin_erreur"=="n") {
echo "Génération des fichiers dans /tftpboot/pxelinux.cfg/ pour l'émetteur.
\n";
echo "
Emetteur: $lig->name ($id_emetteur): \n";
if($distrib=='udpcast') {
//$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'udpcast_emetteur' '$corrige_mac' '$ip_machine' '$nom_machine' '$compr' '$port' '$enableDiskmodule' '$diskmodule' '$netmodule' '$disk' '$auto_reboot' '$udpcparam' '$urlse3' '$num_op' '$dhcp' '$dhcp_iface'", $retour);
$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'udpcast_emetteur' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine compr=$compr port=$port enableDiskmodule=$enableDiskmodule diskmodule=$diskmodule netmodule=$netmodule disk=$disk auto_reboot=$auto_reboot udpcparam=$udpcparam_temp urlse3=$urlse3 num_op=$num_op dhcp=$dhcp dhcp_iface=$dhcp_iface'", $retour);
}
else {
//$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_udpcast_emetteur' '$corrige_mac' '$ip_machine' '$nom_machine' '$compr' '$port' '$enableDiskmodule' '$diskmodule' '$netmodule' '$disk' '$auto_reboot' '$udpcparam' '$urlse3' '$num_op' '$dhcp' '$dhcp_iface'", $retour);
if($ntfsclone_udpcast=='y') {
$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_ntfsclone_udpcast_emetteur' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine compr=$compr port=$port enableDiskmodule=$enableDiskmodule diskmodule=$diskmodule netmodule=$netmodule disk=$disk auto_reboot=$auto_reboot udpcparam=$udpcparam_temp urlse3=$urlse3 num_op=$num_op dhcp=$dhcp dhcp_iface=$dhcp_iface kernel=$sysresccd_kernel id_microtime=$id_microtime $opt_url_authorized_keys'", $retour);
}
else {
$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_udpcast_emetteur' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine compr=$compr port=$port enableDiskmodule=$enableDiskmodule diskmodule=$diskmodule netmodule=$netmodule disk=$disk auto_reboot=$auto_reboot udpcparam=$udpcparam_temp urlse3=$urlse3 num_op=$num_op dhcp=$dhcp dhcp_iface=$dhcp_iface kernel=$sysresccd_kernel $opt_url_authorized_keys'", $retour);
}
}
if(count($retour)>0){
echo "ECHEC de la génération du fichier
\n";
for($j=0;$j\n";
}
$temoin_erreur="y";
}
else {
// Numéro de l'opération de sauvegarde:
//$num_op=get_free_se3_action_tftp_num_op();
$sql="UPDATE se3_tftp_rapports SET statut='VALIDE' WHERE id='$id_emetteur' AND tache='preparation' AND statut='SUCCES';";
$upd=mysql_query($sql);
$sql="DELETE FROM se3_tftp_action WHERE id='$id_emetteur';";
$suppr=mysql_query($sql);
$timestamp=time();
$sql="INSERT INTO se3_tftp_action SET id='$id_emetteur',
mac='$mac_machine',
name='$nom_machine',
date='$timestamp',
type='udpcast_emetteur',
num_op='$num_op',
infos='compr=$compr|disk=$disk|port=$port|enableDiskmodule=$enableDiskmodule|diskmodule=$diskmodule|netmodule=$netmodule|auto_reboot=$auto_reboot|udpcparam=${udpcparam}${ajout_kernel}';";
$insert=mysql_query($sql);
if(!$insert) {
echo "ECHEC de l'enregistrement dans 'se3_tftp_action'
\n";
$temoin_erreur="y";
}
if($temoin_erreur=="n") {
echo "OK\n";
// Application de l'action choisie:
echo " ";
echo "\n";
echo "
\n";
}
}
}
//====================================================
if($temoin_erreur=="y") {
echo "
La mise en place a échoué pour l'emetteur.
On abandonne avant de générer les fichiers pour les émetteurs.
\n et on retablit la configuration initiale";
system("/usr/bin/sudo /usr/share/se3/scripts/integreDomaine.sh ldap $nom_machine $ip_machine $mac_machine > /dev/null");
include ("pdp.inc.php");
exit();
}
// On n'affiche le fichier que pour le dernier (à titre d'info):
if(isset($corrige_mac)) {
//$fich=fopen("/tftpboot/pxelinux.cfg/01-$lig1->mac","r");
$fich=fopen("/tftpboot/pxelinux.cfg/01-$corrige_mac","r");
if($fich) {
echo "Pour information, voici le contenu du fichier généré:
\n";
echo "
";
while(!feof($fich)) {
$ligne=fgets($fich,4096);
echo htmlentities($ligne);
}
echo "
\n";
fclose($fich);
}
else {
echo "Il n'a pas été possible d'ouvrir le fichier /tftpboot/pxelinux.cfg/01-$corrige_mac
\n";
}
}
//====================================================
echo "Génération des fichiers dans /tftpboot/pxelinux.cfg/ pour les récepteurs.
\n";
//$udpcparam="--start-timeout=".$start_timeout;
$sec_start_timeout=$start_timeout*60;
//$udpcparam="--start-timeout=".$sec_start_timeout;
//$sec_max_wait=$max_wait*60;
//$udpcparam="--start-timeout=".$sec_start_timeout." --max-wait=".$sec_max_wait." --min-wait=".$sec_min_wait;
$udpcparam="--start-timeout=".$sec_start_timeout;
$udpcparam_temp=strtr($udpcparam," ","_"); // Pour passer la récupération de variable dans pxe_gen_cfg.sh, l'espace dans le contenu de la variable pose un pb. On remplace par un _ et on fait la correction inverse dans pxe_gen_cfg.sh
// BOUCLE SUR LA LISTE DES $id_recepteur[$i]
for($i=0;$i";
$res=mysql_query($sql);
if(mysql_num_rows($res)==0) {
echo "La machine d'identifiant $id_recepteur[$i] n'existe pas dans 'se3_dhcp'.
\n";
}
else {
$temoin_erreur="n";
$lig=mysql_fetch_object($res);
$mac_machine=$lig->mac;
$nom_machine=$lig->name;
$ip_machine=$lig->ip;
if($restriction_parcs=="y") {
$temoin_erreur='y';
for($loop=0; $loopLa machine $nom_machine ne vous est pas déléguée
\n";
}
else {
echo "Génération pour $nom_machine: ";
$corrige_mac=strtolower(strtr($mac_machine,":","-"));
$chemin="/usr/share/se3/scripts";
//$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'udpcast_recepteur' '$corrige_mac' '$ip_machine' '$nom_machine' '$compr' '$port' '$enableDiskmodule' '$diskmodule' '$netmodule' '$disk' '$auto_reboot' '$udpcparam' '$urlse3' '$num_op'", $retour);
if($distrib=='udpcast') {
//$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'udpcast_recepteur' '$corrige_mac' '$ip_machine' '$nom_machine' '$compr' '$port' '$enableDiskmodule' '$diskmodule' '$netmodule' '$disk' '$auto_reboot' '$udpcparam' '$urlse3' '$num_op' '$dhcp' '$dhcp_iface'", $retour);
$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'udpcast_recepteur' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine compr=$compr port=$port enableDiskmodule=$enableDiskmodule diskmodule=$diskmodule netmodule=$netmodule disk=$disk auto_reboot=$auto_reboot udpcparam=$udpcparam_temp urlse3=$urlse3 num_op=$num_op dhcp=$dhcp dhcp_iface=$dhcp_iface'", $retour);
}
else {
//$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_udpcast_recepteur' '$corrige_mac' '$ip_machine' '$nom_machine' '$compr' '$port' '$enableDiskmodule' '$diskmodule' '$netmodule' '$disk' '$auto_reboot' '$udpcparam' '$urlse3' '$num_op' '$dhcp' '$dhcp_iface'", $retour);
if($ntfsclone_udpcast=='y') {
$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_ntfsclone_udpcast_recepteur' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine compr=$compr port=$port enableDiskmodule=$enableDiskmodule diskmodule=$diskmodule netmodule=$netmodule disk=$disk auto_reboot=$auto_reboot udpcparam=$udpcparam_temp urlse3=$urlse3 num_op=$num_op dhcp=$dhcp dhcp_iface=$dhcp_iface kernel=$sysresccd_kernel id_microtime=$id_microtime $opt_url_authorized_keys'", $retour);
}
else {
$resultat.=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_udpcast_recepteur' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine compr=$compr port=$port enableDiskmodule=$enableDiskmodule diskmodule=$diskmodule netmodule=$netmodule disk=$disk auto_reboot=$auto_reboot udpcparam=$udpcparam_temp urlse3=$urlse3 num_op=$num_op dhcp=$dhcp dhcp_iface=$dhcp_iface kernel=$sysresccd_kernel $opt_url_authorized_keys'", $retour);
}
}
if(count($retour)>0){
echo "ECHEC de la génération du fichier
\n";
for($j=0;$j\n";
}
$temoin_erreur="y";
}
else {
$sql="DELETE FROM se3_tftp_action WHERE id='$id_recepteur[$i]';";
$suppr=mysql_query($sql);
$timestamp=time();
$sql="INSERT INTO se3_tftp_action SET id='$id_recepteur[$i]',
mac='$mac_machine',
name='$nom_machine',
date='$timestamp',
type='udpcast_recepteur',
num_op='$num_op',
infos='compr=$compr|disk=$disk|port=$port|enableDiskmodule=$enableDiskmodule|diskmodule=$diskmodule|netmodule=$netmodule|auto_reboot=$auto_reboot|udpcparam=${udpcparam}${ajout_kernel}';";
$insert=mysql_query($sql);
if(!$insert) {
echo "ECHEC de l'enregistrement dans 'se3_tftp_action'
\n";
$temoin_erreur="y";
}
if($temoin_erreur=="n") {
echo "OK\n";
// Application de l'action choisie:
echo " ";
echo "\n";
echo "
\n";
}
}
}
}
}
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
// POUVOIR TAGUER DANS LA TABLE se3_dhcp LES MACHINES QUI PEUVENT BOOTER EN PXE
// Ajouter un champ?
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
// On n'affiche le fichier que pour le dernier (à titre d'info):
if(isset($corrige_mac)) {
$fich=fopen("/tftpboot/pxelinux.cfg/01-$corrige_mac","r");
if($fich) {
echo "Pour information, voici le contenu du fichier généré:
\n";
echo "
";
while(!feof($fich)) {
$ligne=fgets($fich,4096);
echo htmlentities($ligne);
}
echo "
\n";
fclose($fich);
}
else {
echo "Il n'a pas été possible d'ouvrir le fichier /tftpboot/pxelinux.cfg/01-$corrige_mac
\n";
}
}
}
}
echo "Retour au choix du/des parc(s).
\n";
}
}
else {
print (gettext("Vous n'avez pas les droits nécessaires pour ouvrir cette page..."));
}
// Footer
include ("pdp.inc.php");
?>