diff options
Diffstat (limited to 'admin/WebConsole/gestores/gestor_pxe.php')
-rw-r--r-- | admin/WebConsole/gestores/gestor_pxe.php | 72 |
1 files changed, 42 insertions, 30 deletions
diff --git a/admin/WebConsole/gestores/gestor_pxe.php b/admin/WebConsole/gestores/gestor_pxe.php index 04d5343d..331b6902 100644 --- a/admin/WebConsole/gestores/gestor_pxe.php +++ b/admin/WebConsole/gestores/gestor_pxe.php @@ -50,11 +50,17 @@ $cmd->texto="update ordenadores set arranque=@optboot where nombreordenador=@hos $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 ."'"; + ordenadores.netiface AS netiface, aulas.netmask AS netmask, + aulas.router AS router, repositorios.ip AS iprepo, + aulas.nombreaula AS grupo, + menus.resolucion AS vga + FROM ordenadores + JOIN aulas ON ordenadores.idaula=aulas.idaula + JOIN repositorios ON ordenadores.idrepositorio=repositorios.idrepositorio + LEFT JOIN menus ON ordenadores.idmenu=menus.idmenu + WHERE ordenadores.nombreordenador='". $hostname ."'"; + + $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) echo "error"; @@ -65,6 +71,12 @@ $rs->Primero(); $router=$rs->campos["router"]; $netmask=$rs->campos["netmask"]; $repo=$rs->campos["iprepo"]; + $group=cleanString($rs->campos["grupo"]); + if($rs->campos["vga"]== null) + $vga="788"; + else + $vga=$rs->campos["vga"]; + $rs->Cerrar(); $cmd->texto="SELECT ipserveradm from entornos"; @@ -89,30 +101,27 @@ switch ($idioma) { } -$infohost="LANG=" .$idioma . " ip=" -. $ip . ":" -. $server .":" -. $router . ":" -. $netmask .":" -. $hostname .":" -. $netiface . ":none ogrepo=" -. $repo . " oglive=" -. $repo . " oglog=" -. $server . " ogshare=" -. $repo; +$infohost="vga=$vga ". + "LANG=$idioma ". + "ip=$ip:$server:$router:$netmask:$hostname:$netiface:none" . + " group=$group" . + " ogrepo=$repo" . + " oglive=$repo" . + " oglog=$server" . + " ogshare=$server"; ###################obtenemos las variables de red del aula. #02.1 obtenemos nombre fichero mac + $pxedir="/opt/opengnsys/tftpboot/pxelinux.cfg"; $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; + $macfile="$pxedir/01-" . str_replace(":","-",strtolower($mac)); ########## Escribimos el fichero mac -if (!$gestion=fopen($nombre_archivo, 'w+')) +if (!$gestion=fopen($macfile, 'w+')) { - echo "No se puede abrir el archivo ($nombre_archivo)"; + echo "No se puede abrir el archivo ($macfile)"; return; } # cuales son los parametros del menu @@ -154,20 +163,21 @@ while (!$rs->EOF) $iseac=substr_count($rs->campos["append"] , "boot=oginit"); $isinitrd=substr_count($rs->campos["append"] , "initrd.gz"); + // delete vga value (included in the variable infohost) + // borramos valor vga (incluido en la variable infohost) + $append=preg_replace('/vga=.../','',$rs->campos["append"]); 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"); + fwrite($gestion, $append . " \n"); } $prompt=$rs->campos["prompt"]; @@ -177,19 +187,13 @@ while (!$rs->EOF) } $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); - - - - + exec("chmod 777 $macfile"); } function netmask2cidr($netmask) { @@ -202,4 +206,12 @@ function netmask2cidr($netmask) { return $cidr; } +// Sustituye espacio por "_" y quita acentos y tildes. +function cleanString ($cadena) { + $patron = array ('/ /','/á/','/é/','/í/','/ó/','/ú/','/ñ/','/Á/','/É/','/Í/','/Ó/','/Ú/','/Ñ/'); + $reemplazo = array ('_','a','e','i','o','u','n','A','E','I','O','U','N'); + return preg_replace($patron,$reemplazo,$cadena); +} + + ?> |