summaryrefslogtreecommitdiffstats
path: root/kickstart/kickstart/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'kickstart/kickstart/index.php')
-rw-r--r--kickstart/kickstart/index.php182
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;
-
-?>