diff options
Diffstat (limited to 'kickstart/kickstart/index.php')
-rw-r--r-- | kickstart/kickstart/index.php | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/kickstart/kickstart/index.php b/kickstart/kickstart/index.php deleted file mode 100644 index 9336fb8..0000000 --- a/kickstart/kickstart/index.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php - -#$VERBOSE = 1; - -# disks will be synchronized with k3 -$KATRIN_SERVERS = array( - "ks" => "ipekatrin-v4.ks", - "domain" => "ipe.kit.edu", - "netmask" => "255.255.254.0", - "gw" => "141.52.64.207", - "ns" => "141.52.3.3,141.52.8.18", - "time" => "141.52.8.18", - "sysdisks" => "sdb,sdc", - "append_sol" => "console=tty1 console=ttyS1,115200 earlyprint=serial,ttyS1,115200", - "raid" => "RAID1", - "size" => "80000", - "bootsize" => "2048", - "ethdev" => "enp3s0f1", - "ethdev2" => "enp3s0f0", -); - -$SERVER_LIST = array( - "ipecsavm" => array_merge($KATRIN_SERVERS, array( - "ks" => "ipekatrin-v4.ks", - "macs" => array("66:66:66:13:13:00"), - "ip" => "192.168.26.254", - "netmask" => "255.255.255.0", - "gw" => "192.168.26.117", - "sysdisks" => "sda,sdb", - "raid" => "RAID0", - "size" => "60000", - "ethdev" => "link", - )), - "ipechilinga2" => array_merge($KATRIN_SERVERS, array( - "domain" => "ka.fzk.de", - "macs" => array("48:5b:39:75:fe:ec"), - "headers" => array( - "REMOTE_ADDR" => array("141.52.64.104") - ) - )), - "ipekatrin1" => array_merge($KATRIN_SERVERS, array( - "macs" => array("0c:c4:7a:de:f1:08", "0c:c4:7a:de:f1:09") - )), - "ipekatrin2" => array_merge($KATRIN_SERVERS, array( - "macs" => array("0c:c4:7a:de:f0:e6", "0c:c4:7a:de:f0:e7") - )), - "ipekatrin3" => array_merge($KATRIN_SERVERS, array( - "macs" => array("0c:c4:7a:a8:81:3e", "0c:c4:7a:a8:81:3f"), - "ethdev" => "eno2", - "ethdev2" => "eno1", - )) -); - - -function get_server($srvid) { - global $SERVER_LIST; - - $server = $SERVER_LIST[$srvid]; - - if (!isset($server["fqdn"])) - $server["fqdn"] = "{$srvid}.{$server['domain']}"; - - if (!isset($server["ip"])) - $server["ip"] = gethostbyname($server["fqdn"]); - - $disks = explode(",", $server["sysdisks"]); - if (!isset($server["bootdisk"])) - $server["bootdisk"] = $disks[0]; - - if (!isset($server["disk1"])) - $server["disk1"] = $disks[0]; - - if ((isset($disks[1]))&&(!isset($server["disk2"]))) - $server["disk2"] = $disks[1]; - - - unset($server["macs"]); - unset($server["headers"]); - - return $server; -} - -function find_mac($macs, $mac_header) { - if (!is_array($macs)) $macs = array($macs); - - foreach ($macs as $mac) { - if (preg_match("/$mac/", $mac_header)) - return true; - } - return false; -} - -function find_server_by_mac($mac_header) { - global $SERVER_LIST; - - foreach ($SERVER_LIST as $srvid => $server) { - if (find_mac($server['macs'], $mac_header)) - return get_server($srvid); - } - return false; -} - -function find_server_by_header($http_header, $value) { - global $SERVER_LIST; - - foreach ($SERVER_LIST as $srvid => $server) { - if ((is_array($server["headers"]))&&(isset($server["headers"][$http_header]))) { - $expected = $server["headers"][$http_header]; - if (!is_array($expected)) $expected = array($expected); - foreach ($expected as $re) { - if (preg_match("/$re/", $value)) - return get_server($srvid); - } - } - } - return false; -} - -function find_server() { - global $_SERVER; - - $headers = getallheaders(); - for ($i = 0; $i < 10; $i++) { - $if = "X-RHN-Provisioning-MAC-$i"; - if (!isset($headers[$if])) break; - - $server = find_server_by_mac($headers[$if]); - if ($server) return $server; - } - - foreach ($_SERVER as $header => $value) { - $server = find_server_by_header($header, $value); - if ($server) return $server; - } - - return false; -} - - - - -#echo "Request from: " . $_SERVER["REMOTE_ADDR"]; - -$server = find_server(); -if (!$server) { - $f = fopen("/srv/www/htdocs/ands/logs/kickstart-new.log", "a+"); - if ($f) { - fwrite($f, print_r($_SERVER, true)); - fwrite($f, print_r(getallheaders(), true)); - fclose($f); - } - return; -} - -$ks = file_get_contents($server["ks"]); - -$patterns=array(); $values=array(); -foreach ($server as $key => $val) { - array_push($patterns, "/@" . strtoupper($key) . "@/"); - array_push($values, $val); -} - -$ks = preg_replace($patterns, $values, $ks); - -if ($VERBOSE) { - $f = fopen("/srv/www/htdocs/ands/logs/kickstart.log", "a+"); - if ($f) { - fwrite($f, "-----------------------------------------------------\n"); - fwrite($f, print_r($server, true)); - fwrite($f, print_r($_SERVER, true)); - fwrite($f, print_r(getallheaders(), true)); - fwrite($f, "-----------------------------------------------------\n"); - fwrite($f, $ks); - fwrite($f, "=====================================================\n"); - fclose($f); - } -} - -header("Content-type: text/plain"); -echo $ks; - -?> |