From 493c1dd8260f24f8bfaf9271418529011b0f2a80 Mon Sep 17 00:00:00 2001 From: Tarik Gasmi Date: Fri, 6 Jul 2007 10:29:06 +0000 Subject: Actualised LDAP SiteManagement Webinterface and Perl-Config-Skripts git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1225 95ad53e4-c205-0410-b2fa-d234c58c8868 --- .../generation-scripts/dhcp_generate.pl | 215 +++++++++++++++++++++ ldap-site-mngmt/generation-scripts/dhcpgen.conf.pl | 11 ++ .../webinterface/computers/computers_menu.php | 6 +- .../webinterface/computers/dhcphost.dwt | 3 - .../webinterface/computers/dhcphost_change.php | 4 + .../webinterface/computers/hostoverview.dwt | 6 +- .../webinterface/computers/menuentry_add.php | 10 +- .../webinterface/computers/new_menuentry.dwt | 2 +- .../webinterface/computers/pxe_bootmenue.dwt | 4 +- .../webinterface/computers/pxe_bootmenue.php | 2 +- .../webinterface/computers/pxe_wochenplan.php | 12 +- ldap-site-mngmt/webinterface/computers/rbshost.dwt | 5 +- ldap-site-mngmt/webinterface/computers/rbshost.php | 125 ++++++------ ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php | 2 +- ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt | 95 ++++----- ldap-site-mngmt/webinterface/dhcp/dhcpservice.php | 38 +++- .../webinterface/dhcp/dhcpservice_change.php | 30 ++- ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt | 92 +++++---- ldap-site-mngmt/webinterface/rbs/gbm.dwt | 100 ++++++++-- ldap-site-mngmt/webinterface/rbs/gbm.php | 38 +++- ldap-site-mngmt/webinterface/rbs/gbm_change.php | 96 +++++---- ldap-site-mngmt/webinterface/rbs/gbm_overview.php | 22 ++- ldap-site-mngmt/webinterface/rbs/new_gbm.dwt | 2 +- ldap-site-mngmt/webinterface/rbs/new_gbm.php | 6 +- ldap-site-mngmt/webinterface/rbs/new_pxe.dwt | 17 +- ldap-site-mngmt/webinterface/rbs/new_pxe.php | 28 +-- ldap-site-mngmt/webinterface/rbs/new_rbservice.php | 10 +- ldap-site-mngmt/webinterface/rbs/pxe.dwt | 8 + ldap-site-mngmt/webinterface/rbs/pxe.php | 2 + ldap-site-mngmt/webinterface/rbs/pxe_add.php | 2 +- .../webinterface/rbs/pxeconfig_default.php | 19 +- ldap-site-mngmt/webinterface/rbs/rbs_menu.php | 91 ++++----- ldap-site-mngmt/webinterface/rbs/rbservice.dwt | 158 +++++++-------- ldap-site-mngmt/webinterface/rbs/rbservice.php | 25 ++- ldap-site-mngmt/webinterface/rbs/rbservice_add.php | 1 + .../webinterface/rbs/rbservice_change.php | 56 +++++- ldap-site-mngmt/webinterface/styles.css | 12 +- 37 files changed, 893 insertions(+), 462 deletions(-) create mode 100644 ldap-site-mngmt/generation-scripts/dhcp_generate.pl create mode 100644 ldap-site-mngmt/generation-scripts/dhcpgen.conf.pl (limited to 'ldap-site-mngmt') diff --git a/ldap-site-mngmt/generation-scripts/dhcp_generate.pl b/ldap-site-mngmt/generation-scripts/dhcp_generate.pl new file mode 100644 index 00000000..13969f34 --- /dev/null +++ b/ldap-site-mngmt/generation-scripts/dhcp_generate.pl @@ -0,0 +1,215 @@ +#!/usr/bin/perl + +# Generate ISC DHCP Configuration File +# +# generates an include file "dhcp.master.inc" included in dhcpd.conf +# with: +# - Definitions of User-defined DHCP Options +# - DHCP Service Global Options +# - DHCP Subnet Deklarations and Options +# - DHCP Host Deklarations and Options + + +use strict; +use warnings; +#use diagnostics; + +use Net::LDAP; +use Net::LDAP::LDIF; + +our ( $ldaphost, $basedn, $userdn, $passwd, $dhcpdn, $dhcpdconfpath, $dhcpdconffile ); +my ( $ldap, $mesg ); + +# Read Configuration Variables for LDAP/ +require "dhcpgen.conf.pl"; +#use dhcpgenconfig; + + +# Bind with LDAP Server +$ldap = Net::LDAP->new( $ldaphost ) or die "$@"; +$mesg = $ldap->bind( $userdn, password => $passwd ); +$mesg->code && die $mesg->error; + + +mkdir "$dhcpdconfpath/includes"; +open DATEI, "> $dhcpdconfpath/includes/dhcp.master.inc"; + +my @dhcpdnarray = split /,/,$dhcpdn; +my $aurdn = $dhcpdnarray[2]; +my @auarray = split /=/,$aurdn; +my $au = $auarray[1]; +my $srvrdn = $dhcpdnarray[0]; +my @srvarray = split /=/,$srvrdn; +my $srv = $srvarray[1]; + +# File Header (general Informations) +printf DATEI "##################### DHCP SERVICE CONFIG ############################################ \n#\n"; +printf DATEI "# DHCP Service: \t\t %s \n", $srv; +printf DATEI "# Administrative Unit: \t\t %s \n#\n", $au; +printf DATEI "# [ %s ]\n#\n", $dhcpdn; +printf DATEI "######################################################################################## \n\n\n"; + + +# Ldapsearch on DHCP Service Object +$mesg = $ldap->search(base => $dhcpdn, + scope => 'base', + filter => '(objectclass=dhcpService)'); +#Net::LDAP::LDIF->new( \*STDOUT,"w" )->write( $mesg->entries ); +$mesg->code && die $mesg->error; +my $dhcpservice = $mesg->count or die "DHCP Service Object does not exist in the System"; +my $dhcpsrventry = $mesg->entry(0); + +printf DATEI "######################\n# Option Definitions\n######################\n\n"; +# write Definitions of user/self-defined DHCP Options +if ($dhcpsrventry->exists( 'OptionDefinition' )) { + my @optdefinitions = $dhcpsrventry->get_value( 'OptionDefinition' ); + foreach my $optdef ( @optdefinitions) { + printf DATEI "%s\n", $optdef; + } +} + +printf DATEI "\n\n######################\n# Global Options\n######################\n\n"; +# write DHCP Options in global Scope +dhcpoptions( $dhcpsrventry ); +printf DATEI "\n"; + + + +#################################### +# DHCP SUBNETS + +# ldapsearch on Subnet Objects referencing to DHCP Service Object +$mesg = $ldap->search(base=>$basedn, + scope => 'sub', + filter => '(&(objectclass=dhcpSubnet)(dhcphlpcont:dn:='.$dhcpdn.'))'); +#Net::LDAP::LDIF->new( \*STDOUT,"w" )->write( $mesg->entries ); +$mesg->code && die $mesg->error; +my @subnets = $mesg->sorted('cn'); + +# write Subnet Declarations +printf DATEI "\n\n######################\n# DHCP Subnets\n######################\n\n"; + +foreach my $subnetentry ( @subnets ) { + my $subnetdn = $subnetentry->dn; + my $subnet = $subnetentry->get_value( 'cn' ); + my $netmask = $subnetentry->get_value( 'dhcpoptnetmask' ); + printf DATEI "subnet %s netmask %s {\n", $subnet, $netmask; + # write DHCP Options in Subnet Scope + dhcpoptions($subnetentry); + # Range + if ($subnetentry->exists( 'dhcpRange' )) { + my @range = split /_/,$subnetentry->get_value( 'dhcpRange' ); + printf DATEI " range %s %s;\n", $range[0], $range[1]; + } + + printf DATEI "}\n\n"; +} + + +#################################### +# DHCP HOSTS + +# ldapsearch on DHCP Host Objects referencing to DHCP Service Object +$mesg = $ldap->search(base=>$basedn, + scope => 'sub', + filter => '(&(objectclass=dhcpHost)(dhcphlpcont:dn:='.$dhcpdn.'))'); + #Net::LDAP::LDIF->new( \*STDOUT,"w" )->write( $mesg->entries ); + $mesg->code && die $mesg->error; +my @hosts = $mesg->sorted('dn'); + +# write Host Declarations +printf DATEI "\n\n######################\n# DHCP Hosts\n######################\n"; + +# grouping Hosts by Administrative Units (AU) +my $hostau = ""; +foreach my $hostentry ( @hosts ) { + + # für jede AU eigener Abschnitt (oder abzweigung in eigene includedatei ...) + my $hostdn = $hostentry->dn(); + my @dnarray = split /,/,$hostdn; + my @auarray = split /=/,$dnarray[2]; + my $hostauactual = $auarray[1]; + if ( $hostau ne $hostauactual) { + # hier neues handle und pfad falls eigene includedatei ... + printf DATEI "\n################################################\n# AU: %s \n", $hostauactual; + $hostau = $hostauactual; + } + # DHCP Options in Host Scope + dhcphost($hostentry); +} + +close DATEI; + +# LDAP unbind +$mesg = $ldap->unbind; + +exit (0); + + +################################################################################################### +# Subroutines +############### + +# write DHCP Options, Parameter: DHCP Object LDAP Entry +sub dhcpoptions { + my $entry = shift; + my @atts = $entry->attributes; + + # DHCP Optionen mit 'option' vorne dran + my @options1 = grep /dhcpopt/, @atts; + #printf "options: @options1\n"; + foreach my $option ( @options1 ){ + if ( $option ne "dhcpoptNetmask" ){ + my $value = $entry->get_value( $option ); + $option =~ s/dhcpopt//; + if ( $option eq "Domain-name"){ + printf DATEI " option %s \"%s\";\n", lc($option), $value; + }else{ + printf DATEI " option %s %s;\n", lc($option), $value; + } + } + } + # DHCP Optionen + my @options2 = grep /dhcpOpt/, @atts; + #printf "Options: @options2\n"; + foreach my $option ( @options2 ){ + if ( $option ne "dhcpOptFixed-address" ){ + my $value = $entry->get_value( $option ); + $option =~ s/dhcpOpt//; + if ( $option eq "Filename"){ + printf DATEI " %s \"%s\";\n", lc($option), $value; + }else{ + printf DATEI " %s %s;\n", lc($option), $value; + } + } + } +} + + +# write DHCP Host specific Options, Parameter: DHCP Object LDAP Entry +sub dhcphost { + my $entry = shift; + my @atts = $entry->attributes; + + printf DATEI "\nhost %s {\n", lc $entry->get_value( 'hostname' ); + # Host specific DHCP Options + if ($entry->exists( 'hwaddress' )) { + printf DATEI " hardware ethernet %s;\n", $entry->get_value( 'hwaddress' ); + } + if ($entry->exists( 'dhcpoptfixed-address' )) { + if ( $entry->get_value('dhcpoptfixed-address') eq "ip" ){ + my @ip = split /_/, $entry->get_value( 'ipaddress' ); + printf DATEI " fixed-address %s;\n", lc $ip[0]; + } + if ( $entry->get_value('dhcpoptfixed-address') eq "hostname" ){ + printf DATEI " fixed-address %s.%s;\n", lc $entry->get_value( 'hostname' ), lc $entry->get_value( 'domainname' ); + } + } + my @hwoptions = grep /Hw-/, @atts; + foreach my $hwoption ( @hwoptions ){ + printf DATEI " option %s \"%s\";\n", lc($hwoption), $entry->get_value($hwoption); + } + # remaining DHCP Options + dhcpoptions ($entry); + printf DATEI "}\n"; +} \ No newline at end of file diff --git a/ldap-site-mngmt/generation-scripts/dhcpgen.conf.pl b/ldap-site-mngmt/generation-scripts/dhcpgen.conf.pl new file mode 100644 index 00000000..0df08379 --- /dev/null +++ b/ldap-site-mngmt/generation-scripts/dhcpgen.conf.pl @@ -0,0 +1,11 @@ +# Beispiel einer Konfiguration der dhcp_generator.pl +# Zentraler DHCP Dienst DHCP_UniFR des Rechenzentrums +# verantwortlicher Administrator ist admin01 + +$ldaphost = "ldap://foo.ruf.uni-freiburg.de"; # aus config.php +$basedn = "ou=UniFreiburg,ou=RIPM,dc=uni-freiburg,dc=de"; +$userdn = "uid=admin01,ou=people,dc=uni-freiburg,dc=de"; # aus Session +$passwd = "dipman02"; # aus Session +$dhcpdn = "cn=DHCP_RZ01,cn=dhcp,ou=Rechenzentrum,ou=UniFreiburg,ou=RIPM,dc=uni-freiburg,dc=de"; +$dhcpdconfpath = "/home/lsm/new_dhcpconfigs"; +#$dhcpdconffile = "dhcpd.conf.new"; diff --git a/ldap-site-mngmt/webinterface/computers/computers_menu.php b/ldap-site-mngmt/webinterface/computers/computers_menu.php index 977c8492..564f9b28 100644 --- a/ldap-site-mngmt/webinterface/computers/computers_menu.php +++ b/ldap-site-mngmt/webinterface/computers/computers_menu.php @@ -140,14 +140,14 @@ function createComputersMenu($rollen , $mnr, $auDN, $sbmnr, $mcnr) { } } $htmlcode= " - +   ".$zwisch2." -   - +   + ".$item2['text']."   diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost.dwt b/ldap-site-mngmt/webinterface/computers/dhcphost.dwt index a9d18707..2f381850 100644 --- a/ldap-site-mngmt/webinterface/computers/dhcphost.dwt +++ b/ldap-site-mngmt/webinterface/computers/dhcphost.dwt @@ -35,9 +35,6 @@ - - - diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost_change.php b/ldap-site-mngmt/webinterface/computers/dhcphost_change.php index 2a78f109..96bbb715 100644 --- a/ldap-site-mngmt/webinterface/computers/dhcphost_change.php +++ b/ldap-site-mngmt/webinterface/computers/dhcphost_change.php @@ -9,6 +9,7 @@ $olddhcp = $_POST['olddhcp']; $hostip = $_POST['hostip']; $fixedaddress = $_POST['fixadd']; $oldfixedaddress = $_POST['oldfixadd']; +$oldrbs = $_POST['oldrbs']; $hostDN = $_POST['hostdn']; $sbmnr = $_POST['sbmnr']; @@ -72,6 +73,9 @@ if ($dhcp != "none" && $dhcp != $olddhcp){ if ( $oldfixedaddress != "" ){ $entrydhcp ['dhcpoptfixed-address'] = array(); } + #if ( $oldrbs != "" ){ + # $entrydhcp ['hlprbservice'] = array(); + #} echo "DHCP delete "; echo "
"; if ($result = ldap_mod_del($ds,$hostDN,$entrydhcp)){ $mesg = "Rechner erfolgreich aus DHCP gelöscht

"; diff --git a/ldap-site-mngmt/webinterface/computers/hostoverview.dwt b/ldap-site-mngmt/webinterface/computers/hostoverview.dwt index 87ed24a6..51065a56 100644 --- a/ldap-site-mngmt/webinterface/computers/hostoverview.dwt +++ b/ldap-site-mngmt/webinterface/computers/hostoverview.dwt @@ -9,17 +9,17 @@ - + - - + + diff --git a/ldap-site-mngmt/webinterface/computers/menuentry_add.php b/ldap-site-mngmt/webinterface/computers/menuentry_add.php index dd10e7c2..4f02d2a6 100644 --- a/ldap-site-mngmt/webinterface/computers/menuentry_add.php +++ b/ldap-site-mngmt/webinterface/computers/menuentry_add.php @@ -27,7 +27,7 @@ $pxetype = $pxearray[2]; $seconds = 2; $get_mecn = str_replace ( " ", "_", $mecn ); -$url = "pxe.php?dn=".$pxeDN."&mecn=".$get_mecn."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; +$url = "pxe_bootmenue.php?dn=".$pxeDN."&mecn=".$get_mecn."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; echo " @@ -68,7 +68,7 @@ if ($typ == "newme" && $typ != "local" && $typ != "text" && $typ != "leer" && $t if (add_me($meDN,$mecn,$gbmDN,$menpos,$meatts,$pxeDN)){ $mesg .= "
Neuen Menü Eintrag erfolgreich angelegt
"; - $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;; + $url = "pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;; } else{ $mesg .= "
Fehler beim anlegen des Menü Eintrags!
"; @@ -134,7 +134,7 @@ elseif ($typ == "local" && $typ != "newme" && $typ != "text" && $typ != "leer" & }else{ $mesg .= "Fehler beim eintragen der Localboot Zeile!"; } - $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + $url = "pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; } @@ -191,7 +191,7 @@ elseif ($typ == "text" && $typ != "newme" && $typ != "local" && $typ != "leer" & }else{ $mesg .= "Fehler beim eintragen der Textzeile!"; } - $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + $url = "pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; } } @@ -247,7 +247,7 @@ elseif ($typ == "leer" && $typ != "newme" && $typ != "local" && $typ != "text" & }else{ $mesg .= "Fehler beim eintragen der Leerzeile!"; } - $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + $url = "pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; } diff --git a/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt b/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt index 9ccaa5ff..40baf438 100644 --- a/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt +++ b/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt @@ -1,6 +1,6 @@
RechnernameMAC Adresse IP AdresseMAC Adresse DHCP RBS
{HOSTNAME}  {HWADDRESS}  {HOSTNAME}   {IPADDRESS}  {HWADDRESS}   {DHCPCONT}   {RBSCONT}  
- + diff --git a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt index 305baf9f..ac6261b6 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt +++ b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt @@ -53,8 +53,8 @@ - - + + diff --git a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php index c6b62011..3bd34305 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php +++ b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php @@ -131,7 +131,7 @@ $template->assign(array("MENDN" => "", "BGCDEF" => "", "POSITION" => "")); foreach ($menuentries as $me){ - $anzeige = ""; + $anzeige = ""; $medef = ""; $mepwd = ""; $mehide = ""; if ($me['label'] != "" && $me['menulabel'] == ""){$anzeige .= $me['label'];} if ($me['menulabel'] != ""){$anzeige .= $me['menulabel'];} if ($me['menudefault'] == 1){$medef = "D"; $bgcdef = "background-color:#EEDD82;";} diff --git a/ldap-site-mngmt/webinterface/computers/pxe_wochenplan.php b/ldap-site-mngmt/webinterface/computers/pxe_wochenplan.php index 2e73db85..8296762a 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_wochenplan.php +++ b/ldap-site-mngmt/webinterface/computers/pxe_wochenplan.php @@ -78,10 +78,10 @@ foreach ($wopldeftranges as $tr){ #print_r($allx); echo "
"; $daycode = array("MO" => "A", "DI" => "B", "MI" => "C", "DO" => "D", "FR" => "E", "SA" => "F", "SO" => "G"); -$allxcolors = array("#BEBEBE","A0A0A0","#696969","#EEDFCC","#D8BFD8","#505050"); -$dayxcolors = array("#483D8B","#7B68EE","#191970","#8470FF","#708090","#6A5ACD"); -$timexcolors = array("#CDC673","#A2CD5A","#BDB76B","#8B864E","#6B8E23","#CDBE70"); -$daytimecolors = array("880000","#CD6839","#CC3300","#CC6600","#993300","#8B4C39"); +$daytimexcolors = array("#BEBEBE","A0A0A0","#696969","#EEDFCC","#D8BFD8","#505050"); +$allxcolors = array("#483D8B","#7B68EE","#191970","#8470FF","#708090","#6A5ACD"); +$dayxcolors = array("#CDC673","#A2CD5A","#BDB76B","#8B864E","#6B8E23","#CDBE70"); +$timecolors = array("880000","#CD6839","#CC3300","#CC6600","#993300","#8B4C39"); if (count($allx) != 0){ @@ -242,7 +242,7 @@ if (count($daytime) != 0){ } -$template->assign(array("PXEDESC" => "")); +$template->assign(array("PXEPLANDESC" => "")); #print_r($legend); if (count($legend) != 0){ $template->define_dynamic("Legende", "Webseite"); @@ -252,7 +252,7 @@ if (count($legend) != 0){ $template->assign(array("TR1" => $item[0][0], "TR2" => $item[0][1], "TR3" => $item[0][2], - "PXEDESC" => $item[0][3], + "PXEPLANDESC" => $item[0][3], "COLOR" => $color)); $template->parse("LEGENDE_LIST", ".Legende"); } diff --git a/ldap-site-mngmt/webinterface/computers/rbshost.dwt b/ldap-site-mngmt/webinterface/computers/rbshost.dwt index 6fd774cd..59baf810 100644 --- a/ldap-site-mngmt/webinterface/computers/rbshost.dwt +++ b/ldap-site-mngmt/webinterface/computers/rbshost.dwt @@ -13,6 +13,9 @@ + + + @@ -74,87 +76,90 @@

Zurück zu  {PXECN}

Zurück zu  {PXECN}

 

RBS/PXE Setup - Rechner   {HOSTNAME}

{NODHCP} 
@@ -370,7 +373,7 @@ - + diff --git a/ldap-site-mngmt/webinterface/computers/rbshost.php b/ldap-site-mngmt/webinterface/computers/rbshost.php index 83c2056d..438009ed 100644 --- a/ldap-site-mngmt/webinterface/computers/rbshost.php +++ b/ldap-site-mngmt/webinterface/computers/rbshost.php @@ -43,75 +43,75 @@ $rbs_dhcpopt = ""; $host_dhcpopt = ""; $dhcp_selectbox = ""; +$rbs = ""; +$nodhcptext = ""; -# Falls nicht DHCP Dienst dann kein RBS Setup +# Falls nicht DHCP Dienst dann Erklärung ... if ($dhcphlpcont == ""){ - $rbs = " - - "; -}else{ - - ########################################################### - # RBS Setup # Nur wenn angezeigt wenn Host in DHCP - $rbs_selectbox = ""; - $rbs_dhcpopt = ""; - $altrbs = alternative_rbservices($rbsDN); - - - $rbs_selectbox .= ""; + $nodhcptext .= "Der Rechner ist in keinem DHCP Dienst eingetragen. Dies ist jedoch Voraussetzung, + um einen Remote Boot Dienst nutzen zu können.
+ D.h. die hier verwalteten RBS-relevanten DHCP Optionen werden bzw. sind für den Client zentral gespeichert, + werden jedoch in keine DHCP Dienst Konfiguration ünernommen. + "; +} +# +########################################################### +# RBS Setup +$rbs_selectbox = ""; +$rbs_dhcpopt = ""; +$altrbs = alternative_rbservices($rbsDN); - # RBS Daten - if ($rbsDN == ""){ - - $rbs = " - - ".$rbs_selectbox; - }else{ - - $rbs = ""; - $rbsdata = get_node_data($rbsDN,array("tftpserverip")); - #print_r($rbsdata); echo "
"; - $exp2 = explode(',',$host['hlprbservice']); - $exprbs = explode('=',$exp2[0]); $rbserv = $exprbs[1]; - $exprbsau = explode('=',$exp2[2]); $rbsau = $exprbsau[1]; - $rbs .= " - - - - - - - - - - - - ".$rbs_selectbox." - "; - - $rbs_dhcpopt = " - "; + + $rbs_selectbox .= ""; +# RBS Daten +if ($rbsDN == ""){ + + $rbs .= " + + ".$rbs_selectbox; +}else{ + + $rbsdata = get_node_data($rbsDN,array("tftpserverip")); + #print_r($rbsdata); echo "
"; + $exp2 = explode(',',$host['hlprbservice']); + $exprbs = explode('=',$exp2[0]); $rbserv = $exprbs[1]; + $exprbsau = explode('=',$exp2[2]); $rbsau = $exprbsau[1]; + $rbs .= " + + + + + + + + + + + + ".$rbs_selectbox." + "; + + $rbs_dhcpopt = ""; } + + $template->assign(array("HOSTDN" => $hostDN, "HOSTNAME" => $host['hostname'], "DOMAINNAME" => $host['domainname'], @@ -120,6 +120,7 @@ $template->assign(array("HOSTDN" => $hostDN, "DESCRIPTION" => $host['description'], "OLDDHCP" => $objectDN, "OLDFIXADD" => $host['dhcpoptfixed-address'], + "NODHCP" => $nodhcptext, "OLDRBS" => $rbsDN, "RBS" => $rbs, "HOSTLINK" => "", @@ -162,7 +163,7 @@ if (count($hostpxeconfigs) != 0){ } $template->assign(array("PXEDN" => $hostpxeconfigs[$i]['dn'], "PXECN" => $pxelink, - "PXEDESC" => $hostpxeconfigs['description'], + #"PXEDESC" => $hostpxeconfigs['description'], "PXETR" => $trange, )); $template->parse("RECHNERPXES_LIST", ".Rechnerpxes"); diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php b/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php index 423c53c8..f9a6fae6 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php @@ -9,7 +9,7 @@ function createDhcpMenu($rollen , $mnr, $auDN, $sbmnr) { $hauptmenu = array(array("link" => "no_dhcp.php", "text" => "Übersicht", "zugriff" => "alle")); - $submenu = array(array(array())); + $submenu = array(array()); }else{ # DHCP Services (momentan nur für einen DHCP konzipiert) $dhcpservice_array = get_dhcpservices($auDN,array("dn","cn")); diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt b/ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt index 2bfd0631..eb8e99b6 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpservice.dwt @@ -50,13 +50,15 @@   - +
{PXEDESC}  {PXEPLANDESC}      
- Sie müssen den Rechner zuerst in einem DHCP Dienst anmelden, bevor Sie ihn - einem Remote Boot Dienst zuordnen können
(DHCP Optionen!!).
- Remote Boot Dienst:   - Rechner ist in keinem Remote Boot Dienst angemeldet
- RBS auswählen:
Remote Boot Dienst:   - Remote Boot Service ".$rbserv." / AU ".$rbsau."
DHCP Option next-server  (TFTP Boot Server IP):".$host['dhcpoptnext-server']." 
DHCP Option filename  (initiale remote Bootdatei):".$host['dhcpoptfilename']." 
- RBS Einbindung ändern:
+ Remote Boot Dienst:   + Rechner ist in keinem Remote Boot Dienst angemeldet
+ RBS auswählen:
Remote Boot Dienst:   + Remote Boot Service ".$rbserv." / AU ".$rbsau."
DHCP Option next-server  (TFTP Boot Server IP):".$host['dhcpoptnext-server']." 
DHCP Option filename  (initiale remote Bootdatei):".$host['dhcpoptfilename']." 
+ RBS Einbindung ändern:
- - - - - - - + + - - - + + - + - - - + + - - - + + - + - - - + + - - - + + - + - - - + + - + + + + + {OPTDEF} + + + + diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpservice.php b/ldap-site-mngmt/webinterface/dhcp/dhcpservice.php index 59d77bbe..144ae183 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpservice.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpservice.php @@ -30,6 +30,7 @@ $template->assign(array("DHCPDN" => "", "SECONDARY" => "", "DESCRIPTION" => "", "STATEMENTS" => "", + "FAILOVERPEER" => "", "ALLOW" => "", "DENY" => "", "IGNORE" => "", @@ -40,18 +41,22 @@ $template->assign(array("DHCPDN" => "", "DOMAINNAME" => "", "DOMAINNAMESERVERS" => "", "MAXMESSIZE" => "", - "SRVIDENT" => "", "NTPSERVERS" => "", "OPTGENERIC" => "", + "OPTDEF" => "", + "OPTDEFINITION" => "", "DHCPOFFERNOWDN" => "", - "DHCPOFFERNOW" => "")); + "DHCPOFFERNOW" => "", + "SUBNET" => "keine Subnetze zugewiesen", + "NETMASK" => "", + "SUBNETAU" => "")); # DHCP Service Daten $dhcpsv_array = get_dhcpservices($auDN,array("dn","cn")); $dhcpserviceDN = $dhcpsv_array[0]['dn']; -$attributes = array("dn","cn","dhcpprimarydn","dhcpsecondarydn","description","dhcpofferdn","dhcpstatements","dhcpoptallow", - "dhcpoptddns-update-style","dhcpoptdefault-lease-time","dhcpoptdeny","dhcpoptfilename", - "dhcpoptignore","dhcpoptmax-lease-time","dhcpoptnext-server","dhcpoptserver-identifier", +$attributes = array("dn","cn","dhcpprimarydn","dhcpsecondarydn","description","dhcpofferdn","dhcpstatements","dhcpfailoverpeer", + "dhcpoptallow","dhcpoptddns-update-style","dhcpoptdefault-lease-time","dhcpoptdeny","dhcpoptfilename", + "dhcpoptignore","dhcpoptmax-lease-time","dhcpoptnext-server","optiondefinition", "dhcpoptuse-host-decl-names","dhcpoptbroadcast-address","dhcpoptdhcp-max-message-size", "dhcpoptdomain-name","dhcpoptdomain-name-servers","dhcpoptgeneric","dhcpoptntp-servers", "dhcpoptroot-path","dhcpoptrouters"); @@ -81,6 +86,22 @@ $expcn = explode('_',$dhcpsv_data['cn']); $name = array_slice($expcn,1); $dhcpcn = implode('_',$name); +$optdef = ""; +if (count($dhcpsv_data['optiondefinition']) == 1){ + $dhcpsv_data['optiondefinition'] = array($dhcpsv_data['optiondefinition']); +} +if (count($dhcpsv_data['optiondefinition']) > 0){ + foreach ($dhcpsv_data['optiondefinition'] as $optdefinition){ + $optdef .= " + + + + "; + } +} $template->assign(array("DHCPDN" => $dhcpsv_data['dn'], "CN" => $dhcpcn, @@ -88,6 +109,7 @@ $template->assign(array("DHCPDN" => $dhcpsv_data['dn'], "SECONDARY" => $dhcpsv_data['dhcpsecondarydn'], "DESCRIPTION" => $dhcpsv_data['description'], "STATEMENTS" => $dhcpsv_data['dhcpstatements'], + "FAILOVERPEER" => $dhcpsv_data['dhcpfailoverpeer'], "ALLOW" => $dhcpsv_data['dhcpoptallow'], "DENY" => $dhcpsv_data['dhcpoptdeny'], "IGNORE" => $dhcpsv_data['dhcpoptignore'], @@ -100,11 +122,10 @@ $template->assign(array("DHCPDN" => $dhcpsv_data['dn'], "DOMAINNAMESERVERS" => $dhcpsv_data['dhcpoptdomain-name-servers'], "NEXTSERVER" => $dhcpsv_data['dhcpoptnext-server'], "FILENAME" => $dhcpsv_data['dhcpoptfilename'], - "SRVIDENT" => $dhcpsv_data['dhcpoptserver-identifier'], "NTPSERVERS" => $dhcpsv_data['dhcpoptntp-servers'], - "OPTGENERIC" => $dhcpsv_data['dhcpoptgeneric'], "DHCPOFFERNOWDN" => $dhcpsv_data['dhcpofferdn'], "DHCPOFFERNOW" => $dhcpoffernow, + "OPTDEF" => $optdef, "MNR" => $mnr, "SBMNR" => $sbmnr)); @@ -115,6 +136,7 @@ foreach ($dhcpoffers as $offer){ $template->parse("DHCPOFFERS_LIST", ".Dhcpoffers"); } + # Subnetze und Hosts des Dienstes $dhcpobjects = get_service_subnets($dhcpserviceDN, array("dn","cn","dhcpoptnetmask")); #print_r($dhcpobjects); @@ -150,7 +172,7 @@ foreach ($dhcpobjects as $subnet){ ################################################ # DHCP Generator Skript Config -$template->assign(array("DHCPGENLDAP" => "ldap://".LDAP_HOST, +$template->assign(array("DHCPGENLDAP" => LDAP_HOST, "DHCPGENBASE" => "ou=RIPM,".$suffix, "DHCPGENUDN" => $userDN, "DHCPGENPW" => $userPassword, diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpservice_change.php b/ldap-site-mngmt/webinterface/dhcp/dhcpservice_change.php index 5096d355..55e51cd9 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpservice_change.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpservice_change.php @@ -5,6 +5,9 @@ $cn = "DHCP_".$_POST['cn']; $oldcn = "DHCP_".$_POST['oldcn']; $dhcpoffer = $_POST['dhcpoffer']; $olddhcpoffer = $_POST['olddhcpoffer']; +$dhcpoptdefinition = $_POST['dhcpoptdefinition']; +$olddhcpoptdefinition = $_POST['olddhcpoptdefinition']; +$adddhcpoptdefinition = $_POST['adddhcpoptdefinition']; $dhcpDN = $_POST['dhcpdn']; @@ -122,6 +125,23 @@ if ( $dhcpoffer != "none" ){ } +##################################### +# Selbstdefinierte Optionen + +if ( $adddhcpoptdefinition != "" ){ + echo "Selbst-definierte DHCP Option hinzufügen.
"; + $entryadd['optiondefinition'] = $adddhcpoptdefinition; + if(ldap_mod_add($ds,$dhcpDN,$entryadd)){ + $mesg = "Selbst-definierte DHCP Option erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen Selbst-definierte DHCP Option

"; + } +} + +#todo: array_vergleich -> Änderung -> ldap_modify +#print_r($dhcpoptdefinition);echo "
"; +#print_r($olddhcpoptdefinition);echo "
"; + ##################################### # Restliche Attribute @@ -148,14 +168,8 @@ foreach (array_keys($atts) as $key){ } } -#print_r($entryadd); echo "
"; -#print_r($entrymod); echo "
"; -#print_r($entrydel); echo "
"; - if (count($entryadd) != 0 ){ - #print_r($entryadd); echo "
"; - #echo "neu anlegen
"; foreach (array_keys($entryadd) as $key){ $addatts .= "".$key.","; } @@ -167,8 +181,6 @@ if (count($entryadd) != 0 ){ } if (count($entrymod) != 0 ){ - #print_r($entrymod); echo "
"; - #echo "ändern
"; foreach (array_keys($entrymod) as $key){ $modatts .= "".$key.","; } @@ -180,8 +192,6 @@ if (count($entrymod) != 0 ){ } if (count($entrydel) != 0 ){ - #print_r($entrydel); echo "
"; - #echo "löschen
"; foreach (array_keys($entrydel) as $key){ $delatts .= "".$key.","; } diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt index 394b63fc..d35b3d30 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet.dwt @@ -57,8 +57,27 @@ +
OptionWert(e)
Server Identifier: - -   - OptionWert(e)
Default Lease Time: - + +
Default Lease Time: +  
Max Lease Time: - +  
Use Host DCL Names: - +
Use Host DCL Names: +  
DHCP Max Message Size: - +
DHCP Max Message Size: +  
DDNS Update Style: - +  
Domain Name: - -   +
Domain Name: + +  
Domain Name Servers: - +
Domain Name Servers: +  
NTP Servers:  
Allow: +
Allow:  
Deny:  
Self-definierte Optionen:
Option hinzufügen: + +
  + +   +
+ + + + + + +

Subnet Ranges / Pools:

+ + + + + + + + + + + + - + - -
IP RangePool Declaration Options
IP Range:
(Zur dynamischen Vergabe)
   -    @@ -66,9 +85,9 @@  
+ @@ -84,78 +103,71 @@ - - + + - - - + + - + - - - - - - - + + - + - - - + + - - - + + - + - - - + + - - + + diff --git a/ldap-site-mngmt/webinterface/rbs/gbm.dwt b/ldap-site-mngmt/webinterface/rbs/gbm.dwt index b2f77800..2c96ceaa 100644 --- a/ldap-site-mngmt/webinterface/rbs/gbm.dwt +++ b/ldap-site-mngmt/webinterface/rbs/gbm.dwt @@ -1,4 +1,12 @@
OptionWert(e)OptionWert(e)
Default Lease Time: - +
Default Lease Time: +  
Max Lease Time: - +  
DDNS Update Style: - -   -
Domain Name: - +
Domain Name: +  
Domain Name Servers: - +  
Routers: +
Routers:  
Broadcast Address: +
Broadcast Address:  
NTP Servers:  
Next Server: - -   +
Allow: + +  
Filename:
Deny: - -   + +  
+ + + + + + + + @@ -25,9 +33,11 @@

<< Zurück zur GBM Übersicht

 

Generisches Boot Image   {GBMCN}

+ +

KERNEL und APPEND Parameter:

@@ -38,42 +48,66 @@ - - - - + + + - - + + + + + + - - - + - - + - + + + + + + + + + + + + - + + + + + + + + + + + + diff --git a/ldap-site-mngmt/webinterface/rbs/gbm.php b/ldap-site-mngmt/webinterface/rbs/gbm.php index 0efe7922..f0cfbb25 100644 --- a/ldap-site-mngmt/webinterface/rbs/gbm.php +++ b/ldap-site-mngmt/webinterface/rbs/gbm.php @@ -27,16 +27,28 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); $gbmDN = $_GET['dn']; +$template->assign(array("TFTPROOT" => "", + "TFTPKERNEL" => "", + "TFTPPXE" => "", + "TFTPCLIENTCONF" => "", + "NFS" => "", + "NFSPATH" => "", + "NBD" => "")); + # rbservice und pxe daten (voerst nur ein rbs) $rbs_array = get_rbservices($auDN,array("dn","cn")); $rbsDN = $rbs_array[0]['dn']; # RBS Daten -$rbs_data = get_node_data($rbsDN, array("cn","nfsserverip","exportpath","tftpserverip","tftppath","nbdserverip")); +$rbs_data = get_node_data($rbsDN, array("cn","tftpserverip","tftproot","tftpkernelpath","tftpclientconfpath", + "tftppxepath","nfsserverip","exportpath","nbdserverip","fileserveruri")); $template->assign(array("RBSCN" => $rbs_data['cn'], + "TFTPIP" => $rbs_data['tftpserverip'], + "TFTPROOT" => $rbs_data['tftproot'], + "TFTPKERNEL" => $rbs_data['tftpkernelpath'], + "TFTPPXE" => $rbs_data['tftppxepath'], + "TFTPCLIENTCONF" => $rbs_data['tftpclientconfpath'], "NFS" => $rbs_data['nfsserverip'], "NFSPATH" => $rbs_data['exportpath'], - "TFTP" => $rbs_data['tftpserverip'], - "TFTPPATH" => $rbs_data['tftppath'], "NBD" => $rbs_data['nbdserverip'])); @@ -47,12 +59,25 @@ $template->assign(array("GBMDN" => $gbmDN, "INITRD" => "", "FSTYPE" => "", "ROOTFS" => "", + "DEBUG" => "", + "MISC" => "", "IPAPPEND" => "")); # GBM Daten -$attributes = array("dn","cn","label","kernel","initrd","rootfstype","rootfspath","ipappend"); +$attributes = array("dn","cn","label","kernel","initrd","rootfs","rootfstype","rootfspath","debug","appendmisc","ipappend"); $gbm = get_node_data($gbmDN, $attributes); +$selectboxmax = count($rbs_data['fileserveruri']) + 1; +$fsuriselectbox = " + "; + if ($gbm['rootfstype'] == 'nfs'){ $options = "
AttributServer PfadWertWertAttributWert 
KERNEL Image: - {TFTP}::{TFTPPATH}KERNEL - + {TFTPIP}::{TFTPROOT}/{TFTPKERNEL} +
APPEND +    +
Initialram FS
(APPEND initrd=..):
- {TFTP}::{TFTPPATH} - + Initialram FS: + initrd={TFTPIP}::{TFTPROOT}/{TFTPKERNEL} +
Root Filesystem
(APPEND rootfs=..):
- {SELECTOPTIONS} + Root Filesystem: + rootfs={ROOTFS} - - +
  Ändern:
+ {FSURISELECT} +
+ bei NFS eventuell um spezifischen Pfad erweitern:
+ +
Debug-Level:   + debug= + + +
Misc APPEND:
(wird hinten angefügt) 
+ +
IPAPPEND:    @@ -92,6 +126,32 @@

Daraus ergibt sich folgender generischer Bootmenüeintrag

Diesen können Nutzer des Dienstes für ihre PXE-Configs verwenden und zu eigenen Menüeinträgen erweitern.
+ + + + + + + +
+ LABEL .....
+     MENU LABEL ......
+     KERNEL {TFTPIP}::/{TFTPKERNEL}{KERNEL}
+     APPEND initrd={TFTPIP}::/{TFTPKERNEL}{INITRD} rootfs={ROOTFS} debug={DEBUG} {MISC}
+     IPAPPEND {IPAPPEND} +
- + diff --git a/ldap-site-mngmt/webinterface/rbs/new_gbm.php b/ldap-site-mngmt/webinterface/rbs/new_gbm.php index 4ece741c..3300ffb0 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_gbm.php +++ b/ldap-site-mngmt/webinterface/rbs/new_gbm.php @@ -25,11 +25,9 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### -$gbmcn = str_replace ( "_", " ", $_GET['gbmcn']); +$rbsDN = $_GET['rbsdn']; -# rbservice und pxe daten (voerst nur ein rbs) -$rbs_array = get_rbservices($auDN,array("dn","cn")); -$rbsDN = $rbs_array[0]['dn']; +$gbmcn = str_replace ( "_", " ", $_GET['gbmcn']); # RBS Daten $rbs_data = get_node_data($rbsDN, array("cn","nfsserverip","exportpath","tftpserverip","tftppath","nbdserverip")); diff --git a/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt b/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt index c97324b5..3418d674 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt +++ b/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt @@ -1,6 +1,6 @@

Generisches Boot Image   {GBMCN}

Neues generisches Boot Image für Dienst   {RBSCN}   anlegen

- + @@ -18,20 +18,6 @@ PXE_ - - - - + diff --git a/ldap-site-mngmt/webinterface/rbs/new_pxe.php b/ldap-site-mngmt/webinterface/rbs/new_pxe.php index 9a6afba0..338f5d48 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_pxe.php +++ b/ldap-site-mngmt/webinterface/rbs/new_pxe.php @@ -28,6 +28,9 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### +$rbsDN = $_GET['rbsdn']; +$rbsdnexp = ldap_explode_dn($rbsDN, 1); + $pxecn = str_replace ( "_", " ", $_GET['pxecn']); $pxeday = str_replace ( "_", " ", $_GET['pxeday']); $pxebeg = str_replace ( "_", " ", $_GET['pxebeg']); @@ -39,7 +42,8 @@ $template->assign(array("PXECN" => $pxecn, "PXEEND" => $pxeend, "LDAPURI" => "", "FILEURI" => "", - "RBS" => "", + "RBSDN" => $rbsDN, + "RBSCN" => $rbsdnexp[0], "RBSAU" => "", "NFS" => "", "NFSROOT" => "", @@ -65,28 +69,6 @@ $template->assign(array("PXECN" => $pxecn, "MNR" => $mnr, "SBMNR" => $sbmnr)); -############################################# -# RB Dienste holen -$rbsoffers = get_rbsoffers($auDN); - -$template->assign(array("ALTRBSDN" => "", - "ALTRBSCN" => "", - "ALTRBSAU" => "")); - -if (count($rbsoffers) != 0){ -$template->define_dynamic("Altrbs", "Webseite"); - foreach ($rbsoffers as $item){ - $rbsdnexp = ldap_explode_dn($item,1); - $rbsoffcn = $rbsdnexp[0]; - $rbsoffau = $rbsdnexp[2]; - #$auexp = explode(',',$item['auDN']); - #$altrbsau = explode('=',$auexp[0]); - $template->assign(array("ALTRBSDN" => $item, - "ALTRBSCN" => $rbsoffcn, - "ALTRBSAU" => "   [ Abt.: ".$rbsoffau." ]")); - $template->parse("ALTRBS_LIST", ".Altrbs"); - } -} ################################################################################### diff --git a/ldap-site-mngmt/webinterface/rbs/new_rbservice.php b/ldap-site-mngmt/webinterface/rbs/new_rbservice.php index 020e3254..2882ebda 100644 --- a/ldap-site-mngmt/webinterface/rbs/new_rbservice.php +++ b/ldap-site-mngmt/webinterface/rbs/new_rbservice.php @@ -24,15 +24,7 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### -# nochmal zur Sicherheit: falls doch RBS angelegt -$rbs_array = get_rbservices($auDN,array("dn","cn")); -if (count($rbs_array) != 0){ - $url = "rbservice.php?mnr=1"; - $seconds = 1; - $mesg .= "
Sie werden automatisch auf die nächste Seite geleitet.
- Falls nicht, klicken Sie hier hier"; - redirect($seconds, $url, $mesg, $addSessionId = TRUE); -} +# nochmal zur Sicherheit: falls doch RBS angelegt $rbscn = str_replace ( "_", " ", $_GET['rbscn']); $template->assign(array("RBSCN" => $rbscn, diff --git a/ldap-site-mngmt/webinterface/rbs/pxe.dwt b/ldap-site-mngmt/webinterface/rbs/pxe.dwt index 4b881338..ae1c112a 100644 --- a/ldap-site-mngmt/webinterface/rbs/pxe.dwt +++ b/ldap-site-mngmt/webinterface/rbs/pxe.dwt @@ -1,4 +1,12 @@

Neues DEFAULT PXE Boot Menü anlegen:

Neue PXE Config (DEFAULT) für Dienst   {RBSCN}   anlegen:

 
Remote Boot Dienst
- auswählen:
 
- -
Gültigkeitsdauer
(Time Range):
 
@@ -144,6 +130,7 @@
+ + + + + + + + diff --git a/ldap-site-mngmt/webinterface/rbs/pxe.php b/ldap-site-mngmt/webinterface/rbs/pxe.php index f9671d22..11f25875 100644 --- a/ldap-site-mngmt/webinterface/rbs/pxe.php +++ b/ldap-site-mngmt/webinterface/rbs/pxe.php @@ -29,6 +29,7 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### $pxeDN = $_GET['dn']; +#$rbsDN = $_GET['rbsdn']; $attributes = array("dn","cn","rbservicedn","filename","timerange","allowoptions","console","default", "display","font","implicit","kbdmap","menumasterpasswd","menutitle", @@ -90,6 +91,7 @@ $maxpos = count($menuentries)+1; $template->assign(array("PXEDN" => $pxeDN, "PXECN" => $pxecn, "TIMERANGE" => $pxe['timerange'], + "RBSDN" => $rbsDN, "RBS" => $rbsdata['cn'], "RBSAU" => $rbsau, "NFS" => $rbsdata['nfsserverip'], diff --git a/ldap-site-mngmt/webinterface/rbs/pxe_add.php b/ldap-site-mngmt/webinterface/rbs/pxe_add.php index 4b314ab1..793cb34f 100644 --- a/ldap-site-mngmt/webinterface/rbs/pxe_add.php +++ b/ldap-site-mngmt/webinterface/rbs/pxe_add.php @@ -2,7 +2,7 @@ include('../standard_header.inc.php'); $pxecn = $_POST['pxecn']; $pxecn = htmlentities($pxecn); -$rbsDN = $_POST['rbs']; +$rbsDN = $_POST['rbsdn']; #print_r($rbsDN); $pxeday = $_POST['pxeday']; $pxeday = htmlentities($pxeday); $pxebeg = $_POST['pxebeg']; $pxebeg = htmlentities($pxebeg); diff --git a/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php b/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php index f9a2b7db..243c647b 100644 --- a/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php +++ b/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php @@ -6,7 +6,7 @@ include('../standard_header.inc.php'); $titel = "Remote Boot Service Management"; # 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc. $mainnr = 4; -$mnr = 3; +$mnr = -1; $sbmnr = -1; $mcnr = -1; # 3. Dateiname und evtl. Pfad des Templates für die Webseite @@ -19,6 +19,7 @@ include('rbs_header.inc.php'); ################################################################################### $mnr = $_GET['mnr']; +$sbmnr = $_GET['sbmnr']; # Menuleisten erstellen createMainMenu($rollen, $mainnr); @@ -26,15 +27,14 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### +$rbsDN = $_GET['rbsdn']; + $template->assign(array("PXEDN" => "", "PXECN" => "Noch kein Default PXE Boot Menü angelegt", "TRANGES" => "", "RBS" => "", "CN" => "")); -# rbservice und pxe daten (voerst nur ein rbs) -$rbs_array = get_rbservices($auDN,array("dn","cn")); -$rbsDN = $rbs_array[0]['dn']; $pxe_array = get_pxeconfigs($rbsDN,array("dn","cn","timerange","rbservicedn")); # print_r($pxe_array); @@ -52,17 +52,22 @@ for ($i=0; $i".$pxe_array[$i]['cn'].""; + + $template->assign(array("PXEDN" => $pxe_array[$i]['dn'], - "PXECN" => $pxe_array[$i]['cn'], + "PXECN" => $pxename, "TRANGES" => $trange, - "RBS" => $pxe_array[$i]['rbservicedn'], + "RBS" => $rbsDN, + "MNR" => $mnr, + "SBMNR" => $sbmnr, "AUDN" => $auDN)); $template->parse("PXECONF_LIST", ".Pxeconf"); } diff --git a/ldap-site-mngmt/webinterface/rbs/rbs_menu.php b/ldap-site-mngmt/webinterface/rbs/rbs_menu.php index 76a786c2..814282cf 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbs_menu.php +++ b/ldap-site-mngmt/webinterface/rbs/rbs_menu.php @@ -6,66 +6,45 @@ function createRBSMenu($rollen, $mnr, $auDN, $sbmnr) { # rbservices (momentan nur für einen RBS konzipiert) $rbs_array = get_rbservices($auDN,array("dn","cn")); - if (count($rbs_array) == 0){ - $rbslink = "new_rbservice.php?mnr=1"; - $gbmlink = "no_rbservice.php?mnr=2"; - $pxelink = "no_rbservice.php?mnr=3"; - } - else { - $rbslink = "rbservice.php?mnr=1"; - $gbmlink = "gbm_overview.php?mnr=2"; - $pxelink = "pxeconfig_default.php?mnr=3"; - } - $rbsDN = $rbs_array[0]['dn']; - - # Struktur der Registerkartenleiste + + # Struktur der Registerkartenleiste $hauptmenu = array(array("link" => "rbs.php?mnr=0", "text" => "Übersicht", - "zugriff" => "alle"), - array("link" => $rbslink, - "text" => "Remote Boot Service", - "zugriff" => array("MainAdmin","HostAdmin")), - array("link" => $gbmlink, - "text" => "Generische Bootmenüs", - "zugriff" => array("MainAdmin","HostAdmin")), - array("link" => $pxelink, - "text" => "Default PXE", - "zugriff" => array("MainAdmin","HostAdmin"))); - #print_r($hauptmenu); - - # Generische Bootmenüs - $gbm = array(); - if (count($rbs_array) != 0){ - $generic_bms = get_menuentries($rbsDN, array("dn","cn")); - for ($g=0;$g "gbm.php?dn=".$generic_bms[$g]['dn']."&mnr=2&sbmnr=".$g, - "text" => $generic_bms[$g]['cn'], - "zugriff" => array("MainAdmin","HostAdmin")); - } - $gbm [] = array("link" => "new_gbm.php?mnr=2&sbmnr=".$g, - "text" => "Neues Generisches BM", - "zugriff" => array("MainAdmin","HostAdmin")); - } - - # default pxe-configs - $pxe = array(); - if (count($rbs_array) != 0){ - $pxe_array = get_pxeconfigs($rbsDN,array("dn","cn","timerange")); - for($n=0;$n "pxe.php?dn=".$pxe_array[$n]['dn']."&mnr=3&sbmnr=".$n, - "text" => $pxe_array[$n]['cn'], + "zugriff" => "alle")); + $submenu = array(array()); + + $n = 1; + if (count($rbs_array) != 0){ + for ($i=0;$i "rbservice.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n, + "text" => $rbs_array[$i]['cn'], "zugriff" => array("MainAdmin","HostAdmin")); - } - $pxe [] = array("link" => "new_pxe.php?mnr=3&sbmnr=".$n, - "text" => "Neues Default PXE", - "zugriff" => array("MainAdmin","HostAdmin")); + $submenu [] = array( + array("link" => "gbm_overview.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n."&sbmnr=0", + "text" => "Generische Bootmenüs", + "zugriff" => array("MainAdmin","HostAdmin")), + array("link" => "pxeconfig_default.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n."&sbmnr=1", + "text" => "Default PXE Configs", + "zugriff" => array("MainAdmin","HostAdmin")), + array("link" => "new_gbm.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n."&sbmnr=2", + "text" => "Neues GBM anlegen", + "zugriff" => array("MainAdmin","HostAdmin")), + array("link" => "new_pxe.php?rbsdn=".$rbs_array[$i]['dn']."&mnr=".$n."&sbmnr=3", + "text" => "Neue PXE Config anlegen", + "zugriff" => array("MainAdmin","HostAdmin")), + ); + $n++; + } } - $submenu = array(array(), - array(), - $gbm, - $pxe); - - #$rollen = array_keys($roles); + $hauptmenu [] = array("link" => "new_rbservice.php?&mnr=".$n, + "text" => "Neuen RBS anlegen", + "zugriff" => array("MainAdmin","HostAdmin")); + + $submenu [] = array(); + #print_r($hauptmenu); echo "

"; + #print_r($submenu); + # Zusammenstellen der Menuleiste $template->define_dynamic("Hauptmenu", "Menu"); diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice.dwt b/ldap-site-mngmt/webinterface/rbs/rbservice.dwt index 93e70898..601372cd 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbservice.dwt +++ b/ldap-site-mngmt/webinterface/rbs/rbservice.dwt @@ -11,25 +11,25 @@
- - + + - - + - - - + + - - + - - - - + + + + + + + + +

<< Zurück zur PXE Übersicht

 

PXE Boot Menü   {PXECN}

AttributWertAttributWert
Eindeutiger RBS Name (cn):
(Teil des dn, ohne Leerzeichen eingeben)  
+ Eindeutiger RBS Name (cn):
(Teil des dn, ohne Leerzeichen eingeben)  
RBS_  
Dienst kann momentan genutzt werden von:
Abteilung {RBSOFFERNOW}  (und allen Unterabteilungen) +
Dienst kann momentan genutzt werden von:
Abteilung {RBSOFFERNOW}  (und allen Unterabteilungen)
Ändern:
(Wählen Sie eine andere Abteilung)
+ Ändern:
(Wählen Sie eine andere Abteilung)
  @@ -50,104 +50,104 @@

Boot Server System:

TFTP Boot Server:

- - - + + + - - + - - + + - - + - - + - - - + + - - - + + + +
ServerIP Adresse
(Rechner ändern)
Server Pfade   
TFTP Server:   + TFTP Server:   Init Boot File - - TFTP Root + +
{TFTP} + {TFTP} PXE Path - + PXE Path{TFTPROOT}/ +
 Kernel Path - +  Kernel Path{TFTPROOT}/ +
 Clientconf Path - + Initial Boot File + + Clientconf Path{TFTPROOT}/ +

File Server URIs:

+ Diese sind in Generischen Boot Images als RootFS verwendbar.
+ - - - - - - - - - - - - + + + + + - - - - - + + + - - - - - - + + + + + + + + + + + @@ -176,7 +176,7 @@
NFS Server: - - Export Path - -
{NFS}  -   
    
NBD Server: - -   
Vorhandene URIs zu Root-Filesystemen:
(Zum Löschen einer URI Häkchen setzen)
+ +    {FSURI}
+ +
 
{NBD}  -   
Neue URI anlegenFilesystemtypFileserver IPNFS Export-Root bzw. (D)NBD <:Port[/Filesystem]>
  +
- - diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice.php b/ldap-site-mngmt/webinterface/rbs/rbservice.php index 896acbf8..f3c5db7e 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbservice.php +++ b/ldap-site-mngmt/webinterface/rbs/rbservice.php @@ -24,14 +24,18 @@ createRBSMenu($rollen, $mnr, $auDN, $sbmnr); ################################################################################### +$rbsDN = $_GET['rbsdn']; + $template->assign(array("RBSDN" => "", "CN" => "", "TFTP" => "", "TFTPIP" => "", + "TFTPROOT" => "", "INITBOOTFILE" => "", "TFTPKERNEL" => "", "TFTPPXE" => "", "TFTPCLIENTCONF" => "", + "FSURI" => "", "NFS" => "", "NFSIP" => "", "NFSPATH" => "", @@ -44,10 +48,8 @@ $template->assign(array("RBSDN" => "", "IP" => "")); # RBS Daten -$rbs_array = get_rbservices($auDN,array("dn","cn")); -$rbsDN = $rbs_array[0]['dn']; -$attributes = array("dn","cn","rbsofferdn","tftpserverip","tftpkernelpath","tftpclientconfpath","tftppxepath", - "nfsserverip","exportpath","nbdserverip","initbootfile"); +$attributes = array("dn","cn","rbsofferdn","tftpserverip","tftproot","tftpkernelpath","tftpclientconfpath", + "tftppxepath","nfsserverip","exportpath","nbdserverip","initbootfile","fileserveruri"); $rbs_data = get_node_data($rbsDN, $attributes); # RBS Anbieten @@ -82,6 +84,7 @@ $template->assign(array("RBSDN" => $rbs_data['dn'], "TFTP" => $tftpserver['hostname'], "TFTPDN" => $tftpserver['dn'], "TFTPIP" => $rbs_data['tftpserverip'], + "TFTPROOT" => $rbs_data['tftproot'], "INITBOOTFILE" => $rbs_data['initbootfile'], "TFTPKERNEL" => $rbs_data['tftpkernelpath'], "TFTPPXE" => $rbs_data['tftppxepath'], @@ -98,6 +101,7 @@ $template->assign(array("RBSDN" => $rbs_data['dn'], "MNR" => $mnr, "SBMNR" => $sbmnr)); +# RBS Offers $template->define_dynamic("Rbsoffers", "Webseite"); foreach ($rbsoffers as $offer){ $template->assign(array("RBSOFFER" => $offer['dn'], @@ -105,6 +109,19 @@ foreach ($rbsoffers as $offer){ $template->parse("RBSOFFERS_LIST", ".Rbsoffers"); } + +# Fileserver URIs +$template->define_dynamic("Fsuris", "Webseite"); +if ( count($rbs_data['fileserveruri']) > 1 ){ + foreach ($rbs_data['fileserveruri'] as $fsuri){ + $template->assign(array("FSURI" => $fsuri)); + $template->parse("FSURIS_LIST", ".Fsuris"); + } +}else{ + $template->assign(array("FSURI" => $rbs_data['fileserveruri'])); + $template->parse("FSURIS_LIST", ".Fsuris"); +} + ### Rechner $hostorgroup = $exp[0]; $hosts_array = get_hosts($auDN,array("dn","hostname","ipaddress")); diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice_add.php b/ldap-site-mngmt/webinterface/rbs/rbservice_add.php index 54494999..8c47a076 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbservice_add.php +++ b/ldap-site-mngmt/webinterface/rbs/rbservice_add.php @@ -1,5 +1,6 @@
"; - -$seconds = 2; -$url = "rbservice.php?&mnr=1"; echo " @@ -130,7 +135,6 @@ if ( $rbsoffer != "none" && $rbsoffer != $oldrbsoffer ){ ##################################### # Server ändern über IP Feld -$syntax = new Syntaxcheck; if ( $tftpserverip != "" && $tftpserverip != $oldtftpserverip ){ @@ -160,6 +164,45 @@ if ( $tftpserverip != "" && $tftpserverip != $oldtftpserverip ){ } } +####################################### +# Fileserver URI anlegen + +if ( $addfsuri[1] != "" ){ + # tests: ipsyntax, und spezifische URI-Syntax-Checks... + if( $syntax->check_ip_syntax($addfsuri[1]) ){ + + $newfsuri = $addfsuri[0]."://".$addfsuri[1].$addfsuri[2]; + echo "FS URI ".$newfsuri." anlegen
"; + + $entryfsadd ['fileserveruri'] = $newfsuri; + if(ldap_mod_add($ds,$rbsDN,$entryfsadd)){ + $mesg = "FS URI erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der FS URI

"; + } + } + else{echo "Falsche IP Syntax

";} +} + +##################################### +# Fileserver URIs löschen +if ( count($delfsuri) != 0 ){ + echo "Fileserver URI löschen
"; + + $i = 0; + foreach ($delfsuri as $fsuri){ + $entry['fileserveruri'][$i] = $fsuri; + $i++; + } + #print_r($entry); echo "

"; + + if ($result = ldap_mod_del($ds,$rbsDN,$entry)){ + $mesg = "Zu löschende Fileserver URIs erfolgreich gelöscht

"; + }else{ + $mesg = "Fehler beim löschen der Fileserver URIs

"; + } +} + if ( $nfsserverip != "" && $nfsserverip != $oldnfsserverip ){ if ($syntax->check_ip_syntax($nfsserverip)){ @@ -299,6 +342,9 @@ if ( $initbootfile != "" && $initbootfile != $oldinitbootfile ){ $mesg = "Fehler beim ändern des Initial Boot Files!

"; } } + + + ##################################### # Restliche Attribute @@ -371,6 +417,8 @@ if (count($entrydel) != 0 ){ } +$url = "rbservice.php?rbsdn=".$rbsDN."&mnr=".$mnr; +$seconds = 2; $mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
diff --git a/ldap-site-mngmt/webinterface/styles.css b/ldap-site-mngmt/webinterface/styles.css index f644f497..e53676af 100644 --- a/ldap-site-mngmt/webinterface/styles.css +++ b/ldap-site-mngmt/webinterface/styles.css @@ -169,7 +169,17 @@ h4 { border-style: solid; border-width: 1px 1px; border-color: #000000; - width: 200; + width: 250; + padding-left: 5px; + margin: 5px; +} +.tiny_form_selectbox { + font-family: Arial; + font-size: 10pt; + border-style: solid; + border-width: 1px 1px; + border-color: #000000; + width: 80; padding-left: 10px; margin: 5px; } -- cgit v1.2.3-55-g7522
+ $ldaphost= "{PXEGENLDAP}";
$basedn= "{PXEGENBASE}";
$userdn= "{PXEGENUDN}";
@@ -205,7 +205,7 @@
+ Der Remote Boot Dienst wird komplett gelöscht,
d.h. inklusive aller angelegten Generischen PXE Bootmenüs und Default PXEs.