"; echo ""; echo ""; echo " gestion de equipos "; echo ""; echo ""; echo ""; #echo('litambito con valor: '. $_GET['litambito']); #echo ('idambito con valor: ' . $_GET['idaula']); #echo ('nombreambito con valor: ' . $_GET['nombreambito']); $lista = explode(";",$_POST['listOfItems']); foreach ($lista as $sublista) { $elementos = explode("|",$sublista); $hostname=$elementos[1]; $optboot=$elementos[0]; ogBootServer($cmd,$optboot,$hostname); } echo " "; echo " "; function ogBootServer($cmd,$optboot,$hostname) { global $cmd; global $hostname; global $optboot; $cmd->CreaParametro("@optboot",$optboot,0); $cmd->CreaParametro("@hostname",$hostname,0); $cmd->texto="update ordenadores set arranque=@optboot where nombreordenador=@hostname"; $cmd->Ejecutar(); $cmd->texto="SELECT ordenadores.ip AS ip, ordenadores.mac AS mac, ordenadores.netiface AS netiface, aulas.netmask AS netmask, aulas.router AS router, repositorios.ip AS iprepo FROM ordenadores join aulas on ordenadores.idaula=aulas.idaula join repositorios on ordenadores.idrepositorio=repositorios.idrepositorio where ordenadores.nombreordenador='". $hostname ."'"; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) echo "error"; $rs->Primero(); $mac=$rs->campos["mac"]; $netiface=$rs->campos["netiface"]; $ip=$rs->campos["ip"]; $router=$rs->campos["router"]; $netmask=$rs->campos["netmask"]; $repo=$rs->campos["iprepo"]; $infohost=" ip=" . $ip . ":" . $repo .":" . $router . ":" . $netmask .":" . $hostname .":" . $netiface . ":none ogrepo=" . $repo; $rs->Cerrar(); ###################obtenemos las variables de red del aula. #02.1 obtenemos nombre fichero mac $mac= substr($mac,0,2) . ":" . substr($mac,2,2) . ":" . substr($mac,4,2) . ":" . substr($mac,6,2) . ":" . substr($mac,8,2) . ":" . substr($mac,10,2); $macfile="01-" . str_replace(":","-",strtolower($mac)); $nombre_archivo="/var/lib/tftpboot/pxelinux.cfg/" . $macfile; ########## Escribimos el fichero mac if (!$gestion=fopen($nombre_archivo, 'w+')) { echo "No se puede abrir el archivo ($nombre_archivo)"; return; } # cuales son los parametros del menu fwrite($gestion, "DEFAULT syslinux/vesamenu.c32 \n"); fwrite($gestion, "MENU TITLE Aplicacion OpenGnsys \n"); $cmd->texto="SELECT itemboot.label, itemboot.kernel, itemboot.append, menuboot.timeout, menuboot.prompt, menuboot.description, menuboot_itemboot.default From itemboot,menuboot_itemboot,menuboot WHERE menuboot_itemboot.labelmenu=menuboot.label AND menuboot_itemboot.labelitem=itemboot.label AND menuboot.label='" . $optboot . "'"; $rs->Comando=&$cmd; if (!$rs->Abrir()) echo "error"; $rs->Primero(); while (!$rs->EOF) { fwrite($gestion, " \n"); fwrite($gestion, "LABEL " . $rs->campos['label'] . " \n"); fwrite($gestion, "MENU LABEL " . $rs->campos['label'] . " \n"); if ( $rs->campos["default"] == true) { fwrite($gestion, "MENU DEFAULT \n"); } fwrite($gestion, $rs->campos["kernel"] . " \n"); # set netmask cird para ogclient $isnfsroot=substr_count($rs->campos["append"] , "boot=oginit"); if ($isnfsroot > 0) { $netmask=$netmask; } else { $netmask=netmask2cidr($netmask); } $iseac=substr_count($rs->campos["append"] , "boot=oginit"); $isinitrd=substr_count($rs->campos["append"] , "initrd.gz"); if ($iseac > 0) { $append=$rs->campos["append"]; fwrite($gestion, $append . " " . $infohost . " \n "); } elseif ($isinitrd > 0) { $append=$rs->campos["append"]; fwrite($gestion, $append . " ogrepo=" . $repo . " \n"); } else { fwrite($gestion, $rs->campos["append"] . " \n"); } $prompt=$rs->campos["prompt"]; $timeout=$rs->campos["timeout"]; $rs->Siguiente(); } $rs->Cerrar(); fwrite($gestion, " \n"); fwrite($gestion, "PROMPT " . $prompt ." \n"); fwrite($gestion, "TIMEOUT " . $timeout . " \n"); fwrite($gestion, " \n"); fclose($gestion); exec("chown www-data:www-data /var/lib/tftpboot/pxelinux.cfg/". $macfile); exec("chmod 777 /var/lib/tftpboot/pxelinux.cfg/". $macfile); } function netmask2cidr($netmask) { $cidr = 0; foreach (explode('.', $netmask) as $number) { for (;$number> 0; $number = ($number <<1) % 256) { $cidr++; } } return $cidr; } ?>