|
@@ -65,7 +65,7 @@ class INSTALL_SES_PROCESY_A {
|
|
|
$domainList[] = $h2->SERVER_ADDRESS_SHORT;
|
|
$domainList[] = $h2->SERVER_ADDRESS_SHORT;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if ($SERVER_ADDRESS) {
|
|
|
|
|
|
|
+ if ($SERVER_ADDRESS && (!preg_match('/^(.*)\.procesy5\.pl$/', $SERVER_ADDRESS))) {
|
|
|
$subDomainP5 = '' . $SERVER_ADDRESS . '.procesy5.pl';
|
|
$subDomainP5 = '' . $SERVER_ADDRESS . '.procesy5.pl';
|
|
|
if (!in_array($subDomainP5, $domainList)) $domainList[] = $subDomainP5;
|
|
if (!in_array($subDomainP5, $domainList)) $domainList[] = $subDomainP5;
|
|
|
}
|
|
}
|
|
@@ -96,7 +96,14 @@ EOF';
|
|
|
*/
|
|
*/
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+function execOnParallels($command) {
|
|
|
|
|
+ $exec_command = 'ssh -o StrictHostKeyChecking=no -o ConnectTimeout=99999 arkadiuszbinder@parallels.biall-net.pl -t <<EOF
|
|
|
|
|
+ declare PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/lib/mysql55/bin/:/Applications/Server.app/Contents/ServerRoot/usr/sbin/
|
|
|
|
|
+ '.$command.'
|
|
|
|
|
+ EOF';
|
|
|
|
|
+ $result = shell_exec($exec_command);
|
|
|
|
|
+ return $result;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
function INSTALL_GETCOMMANDS($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION) {
|
|
function INSTALL_GETCOMMANDS($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION) {
|
|
|
// $cmd[]['rsh']='echo "'.$ADMIN_USERNAME_PASSWD.'" | sudo -S su -';
|
|
// $cmd[]['rsh']='echo "'.$ADMIN_USERNAME_PASSWD.'" | sudo -S su -';
|
|
@@ -2454,7 +2461,9 @@ function INSTALL_SES_PROCESY_A() {
|
|
|
<br><input type=submit name='POBIERZ_XML_AUTOCONFIG_USB' value='POBIERZ_XML_AUTOCONFIG_USB (TODO nie gotowe @2014-03-10)'>
|
|
<br><input type=submit name='POBIERZ_XML_AUTOCONFIG_USB' value='POBIERZ_XML_AUTOCONFIG_USB (TODO nie gotowe @2014-03-10)'>
|
|
|
<br>
|
|
<br>
|
|
|
<input type=submit name='WYKONAJ_REFERENCYJNA_BAZE_DANYCH' value='1. WYKONAJ_REFERENCYJNA_BAZE_DANYCH (v@2014-03-15)'>
|
|
<input type=submit name='WYKONAJ_REFERENCYJNA_BAZE_DANYCH' value='1. WYKONAJ_REFERENCYJNA_BAZE_DANYCH (v@2014-03-15)'>
|
|
|
- <input type=submit name='POBIERZ_INSTALATOR_SH' value='2. POBIERZ_INSTALATOR_SH (v@2014-03-15)'> <br>
|
|
|
|
|
|
|
+ <input type=submit name='POBIERZ_INSTALATOR_SH' value='2. POBIERZ_INSTALATOR_SH (v@2014-03-15)'>
|
|
|
|
|
+ <input type=submit name='ZAINSTALUJ_NA_PARALLELS' value='3. ZAINSTALUJ_NA_PARALLELS (v@2016-11-27)'>
|
|
|
|
|
+ <input type=submit name='STATUS_INSTALACJI_NA_PARALLELS' value='4. STATUS_INSTALACJI_NA_PARALLELS' (v@2016-11-27)><br>
|
|
|
<!-- input type=submit name='INSTALUJ' value='INSTALUJ zdalnie via ssh (nie uzywac@2014-08-11)'-->
|
|
<!-- input type=submit name='INSTALUJ' value='INSTALUJ zdalnie via ssh (nie uzywac@2014-08-11)'-->
|
|
|
</form>
|
|
</form>
|
|
|
|
|
|
|
@@ -2520,14 +2529,24 @@ function INSTALL_SES_PROCESY_A() {
|
|
|
|
|
|
|
|
if(!empty($h->VERSION_GIT)) {
|
|
if(!empty($h->VERSION_GIT)) {
|
|
|
//Bzyk @ 2016-11-24
|
|
//Bzyk @ 2016-11-24
|
|
|
- //Automatyczne dodanie do dns rekordu pelnej nazwy serwera w domenie procesy5.pl (np. biuro.biall-net.pl.procesy5.pl)
|
|
|
|
|
|
|
+ //Automatyczne dodanie rekordu dns do serwera w domenie procesy5.pl
|
|
|
try {
|
|
try {
|
|
|
Lib::loadClass('ServeradminParser');
|
|
Lib::loadClass('ServeradminParser');
|
|
|
$serveradmin = new ServeradminParser();
|
|
$serveradmin = new ServeradminParser();
|
|
|
- if ($serveradmin->dnsAddIpAddress("procesy5.pl", $h->SERVER_ADDRESS, $h->SERVER_ADDRESS_IP, true)) {
|
|
|
|
|
- $serveradmin->applyConf();
|
|
|
|
|
- DEBUG_S(-3,'Dodano wpis DNS',$h->SERVER_ADDRESS.'.procesy5.pl IN A '.$h->SERVER_ADDRESS_IP);
|
|
|
|
|
- } else DEBUG_S(-3,'Wpis DNS już istnieje',$h->SERVER_ADDRESS.'.procesy5.pl IN A '.$h->SERVER_ADDRESS_IP);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (preg_match('/^(.*)\.procesy5\.pl$/',$h->SERVER_ADDRESS,$matches)) {
|
|
|
|
|
+ // Jezeli nazwa serwera jest w domenie procesy5.pl, dodajemy rekord DNS dla samej danej nazwy (np. test.procesy5.pl)
|
|
|
|
|
+ if ($serveradmin->dnsAddIpAddress("procesy5.pl", $matches[1], $h->SERVER_ADDRESS_IP, true)) {
|
|
|
|
|
+ $serveradmin->applyConf();
|
|
|
|
|
+ DEBUG_S(-3,'Dodano wpis DNS',$h->SERVER_ADDRESS.' IN A '.$h->SERVER_ADDRESS_IP);
|
|
|
|
|
+ } else DEBUG_S(-3,'Wpis DNS już istnieje',$h->SERVER_ADDRESS.' IN A '.$h->SERVER_ADDRESS_IP);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // W przeciwnym wypadku dodajemy wpis z doklejeniem do nazwy serwera domeny procesy5.pl (np. biuro.biall-net.pl.procesy5.pl)
|
|
|
|
|
+ if ($serveradmin->dnsAddIpAddress("procesy5.pl", $h->SERVER_ADDRESS, $h->SERVER_ADDRESS_IP, true)) {
|
|
|
|
|
+ $serveradmin->applyConf();
|
|
|
|
|
+ DEBUG_S(-3,'Dodano wpis DNS',$h->SERVER_ADDRESS.'.procesy5.pl IN A '.$h->SERVER_ADDRESS_IP);
|
|
|
|
|
+ } else DEBUG_S(-3,'Wpis DNS już istnieje',$h->SERVER_ADDRESS.'.procesy5.pl IN A '.$h->SERVER_ADDRESS_IP);
|
|
|
|
|
+ }
|
|
|
} catch (Exception $e) {
|
|
} catch (Exception $e) {
|
|
|
DEBUG_S(-3,"Wystąpił błąd podczas próby dodania wpisu DNS",$e->getMessage());
|
|
DEBUG_S(-3,"Wystąpił błąd podczas próby dodania wpisu DNS",$e->getMessage());
|
|
|
}
|
|
}
|
|
@@ -2802,8 +2821,203 @@ function INSTALL_SES_PROCESY_A() {
|
|
|
|
|
|
|
|
echo "<hr><h2><A href='{$installer_url}".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg'> ściągnij glowną instalacje Procesy5 ".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg</a></h2>\n";
|
|
echo "<hr><h2><A href='{$installer_url}".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg'> ściągnij glowną instalacje Procesy5 ".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg</a></h2>\n";
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+ } else if(!empty($_REQUEST['ZAINSTALUJ_NA_PARALLELS'])) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ $subnets["94.158.130.224"] = array(
|
|
|
|
|
+ "mask" => "255.255.255.224",
|
|
|
|
|
+ "gw" => "94.158.130.225",
|
|
|
|
|
+ "dns" => "94.158.130.225");
|
|
|
|
|
+
|
|
|
|
|
+ $subnets["94.158.132.0"] = array(
|
|
|
|
|
+ "mask" => "255.255.255.0",
|
|
|
|
|
+ "gw" => "94.158.132.1",
|
|
|
|
|
+ "dns" => "94.158.132.1");
|
|
|
|
|
+
|
|
|
|
|
+ foreach ($subnets as $network => $values) $availableSubnetsArr[] = $network . "/" . $values["mask"];
|
|
|
|
|
+ $availableSubnets = implode(", ",$availableSubnetsArr);
|
|
|
|
|
+
|
|
|
|
|
+ $installer_dir_tar ="/Library/Server/Web/Data/Sites/Default/PLIKI/SES_PROCESY5_A"; //katalog CWD z ktorego budowana jest instalacja
|
|
|
|
|
+ $package = $h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg";
|
|
|
|
|
+ $file = $installer_dir_tar.'/'.$package;
|
|
|
|
|
+
|
|
|
|
|
+ echo "<br/>Weryfikacja poprawności danych konfiguracyjnych";
|
|
|
|
|
+ if (!file_exists($file)) throw new Exception("Nie znaleziono pliku instalatora - ".$file.". Należy najpierw wyzwolić funkcję \"2. POBIERZ_INSTALATOR_SH\" (po wygenerowaniu pliku instalatora nie należy niczego pobierać).");
|
|
|
|
|
+ DEBUG_S(-3, 'Plik instalatora', 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ if ($h->SERVER_ADDRESS_LDAP_DC != "dc=procesy5,dc=local") throw new Exception('Błędny Adres LDAP DC - należy koniecznie ustawić "dc=procesy5,dc=local", a następnie na nowo wygenerować plik instalatora klikając na "2. POBIERZ_INSTALATOR_SH".');
|
|
|
|
|
+ DEBUG_S(-3, 'Poprawność Adresu LDAP DC', 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ if (!filter_var($h->SERVER_ADDRESS_IP, FILTER_VALIDATE_IP) === true) throw new Exception('Błąd - '.$h->SERVER_ADDRESS_IP.' nie jest poprawnym adresem IP! Popraw Adres IP serwera.');
|
|
|
|
|
+ DEBUG_S(-3, 'Poprawność Adresu IP serwera', 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ unset($subnet);
|
|
|
|
|
+ foreach ($subnets as $network => $values) {
|
|
|
|
|
+ if ((ip2long($h->SERVER_ADDRESS_IP) & ip2long($values["mask"])) == ip2long($network)) $subnet = $network;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!isset($subnet)) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." nie należy do żadnej znanej puli adresów.<br/>Dostępne pule: ".$availableSubnets);
|
|
|
|
|
+ if ($h->SERVER_ADDRESS_IP == $subnet) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." jest adresem sieci podsieci ".$subnet."/".$subnets[$subnet]["mask"].". Należy wybrać inny adres IP z puli adresów.<br/>Dostępne pule: ".$availableSubnets);
|
|
|
|
|
+ if ($h->SERVER_ADDRESS_IP == $subnets[$subnet]["gw"]) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." jest zarezerwowany dla routera dla podsieci ".$subnet."/".$subnets[$subnet]["mask"].". Należy wybrać inny adres IP z puli adresów.<br/>Dostępne pule: ".$availableSubnets);
|
|
|
|
|
+ if ($h->SERVER_ADDRESS_IP == long2ip(ip2long($subnet) | ~ip2long($subnets[$subnet]["mask"]))) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." jest adresem rozgłoszeniowym dla podsieci ".$subnet."/".$subnets[$subnet]["mask"].". Należy wybrać inny adres IP z puli adresów.<br/>Dostępne pule: ".$availableSubnets);
|
|
|
|
|
+ DEBUG_S(-3, 'Adres IP serwera należy do znanej puli adresów', 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ exec("ping ".$h->SERVER_ADDRESS_IP." -c 2 -t 1 >/dev/null", $output, $exit);
|
|
|
|
|
+ if (!$exit) throw new Exception('Błąd - maszyna o adresie IP '.$h->SERVER_ADDRESS_IP.' już istnieje (odpowiada na "pingi").');
|
|
|
|
|
+ DEBUG_S(-3, 'Brak maszyny w sieci o adresie IP'.$h->SERVER_ADDRESS_IP, 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ $result = execOnParallels('prlctl status "'.$h->SERVER_ADDRESS.'"');
|
|
|
|
|
+ if ($result) throw new Exception("Maszyna wirtualna o nazwie ".$h->SERVER_ADDRESS." już istnieje!");
|
|
|
|
|
+ DEBUG_S(-3, 'Brak wirtualnej maszyny Parallels o nazwie '.$h->SERVER_ADDRESS, 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ $result = execOnParallels('[ -f "Parallels/.current_autoinstall_'.$h->SERVER_VERSION.'" ] && echo 1');
|
|
|
|
|
+ if (!$result) throw new Exception("Brak definicji szablonu wirtualnej maszyny Parallels dla systemu macOS ".$h->SERVER_VERSION);
|
|
|
|
|
+ DEBUG_S(-3, 'Definicja szablonu wirtualnej maszyny Parallels dla systemu macOS '.$h->SERVER_VERSION, 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ $result = execOnParallels('prlctl list -t "\$(<Parallels/.current_autoinstall_'.$h->SERVER_VERSION.')" >/dev/null 2>&1 && echo 1');
|
|
|
|
|
+ if (!$result) throw new Exception("Wystąpił problem z szablonem wirtualnej maszyny Parallels dla systemu macOS ".$h->SERVER_VERSION);
|
|
|
|
|
+ DEBUG_S(-3, 'Szablon wirtualnej maszyny Parallels dla systemu macOS '.$h->SERVER_VERSION, 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ echo "<br/>Tworzenie maszyny wirtualnej";
|
|
|
|
|
+ $result = execOnParallels('prlctl clone "\$(<Parallels/.current_autoinstall_'.$h->SERVER_VERSION.')" --name "'.$h->SERVER_ADDRESS.'"');
|
|
|
|
|
+ DEBUG_S(-3, 'Tworzenie maszyny wirtualnej', $result);
|
|
|
|
|
+
|
|
|
|
|
+ $result = execOnParallels('prlctl status "'.$h->SERVER_ADDRESS.'"');
|
|
|
|
|
+ if (!$result) throw new Exception("Błąd tworzenia maszyny wirtualnej Parallels o nazwie ".$h->SERVER_ADDRESS);
|
|
|
|
|
+ DEBUG_S(-3, 'Poprawność utworzenia maszyny wirtualnej Parallels o nazwie '.$h->SERVER_ADDRESS, 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ $plist = '<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
|
|
|
+<plist version="1.0">
|
|
|
|
|
+<dict>
|
|
|
|
|
+ <key>Disabled</key><false/>
|
|
|
|
|
+ <key>KeepAlive</key><true/>
|
|
|
|
|
+ <key>Label</key><string>parallels.'.$h->SERVER_ADDRESS.'</string>
|
|
|
|
|
+ <key>ProgramArguments</key>
|
|
|
|
|
+ <array>
|
|
|
|
|
+ <string>/usr/local/bin/prlctl</string>
|
|
|
|
|
+ <string>start</string>
|
|
|
|
|
+ <string>'.$h->SERVER_ADDRESS.'</string>
|
|
|
|
|
+ </array>
|
|
|
|
|
+ <key>UserName</key><string>arkadiuszbinder</string>
|
|
|
|
|
+ <key>RunAtLoad</key><true/>
|
|
|
|
|
+ <key>AbandonProcessGroup</key><true/>
|
|
|
|
|
+</dict>
|
|
|
|
|
+</plist>';
|
|
|
|
|
+ $result = execOnParallels('sudo -n su -
|
|
|
|
|
+echo \''.$plist.'\' > /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
|
|
|
|
|
+ DEBUG_S(-3, 'Utworzenie pliku plist do LaunchDaemona', 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ echo "<br/>Uruchomienie maszyny wirtualnej";
|
|
|
|
|
+ execOnParallels('sudo launchctl load /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
|
|
|
|
|
+ $i = 0;
|
|
|
|
|
+ do {
|
|
|
|
|
+ sleep(10);
|
|
|
|
|
+ echo ".";
|
|
|
|
|
+ $result = execOnParallels('prlctl list -i -j '.$h->SERVER_ADDRESS);
|
|
|
|
|
+ $result_jdecoded = json_decode($result);
|
|
|
|
|
+ $state = $result_jdecoded[0]->GuestTools->state;
|
|
|
|
|
+ if ($i++>18) {
|
|
|
|
|
+ execOnParallels('sudo launchctl load /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
|
|
|
|
|
+ execOnParallels('sudo rm -f /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
|
|
|
|
|
+ execOnParallels('prlctl stop "'.$h->SERVER_ADDRESS.'"');
|
|
|
|
|
+ execOnParallels('prlctl delete "'.$h->SERVER_ADDRESS.'"');
|
|
|
|
|
+ throw new Exception("Wystąpił problem z uruchomieniem maszyny wirtualnej, usuwam maszynę i przerywam...");
|
|
|
|
|
+ }
|
|
|
|
|
+ } while ($state == "not_installed");
|
|
|
|
|
+ DEBUG_S(-3, 'Uruchomienie maszyny wirtualnej Parallels', 'OK');
|
|
|
|
|
+
|
|
|
|
|
+ echo "<br/>Konfiguracja maszyny wirtualnej";
|
|
|
|
|
+ $result = execOnParallels('prlctl exec "'.$h->SERVER_ADDRESS.'" "networksetup -setmanual Ethernet '.$h->SERVER_ADDRESS_IP.' '.$subnets[$subnet]["mask"].' '.$subnets[$subnet]["gw"].'"');
|
|
|
|
|
+ DEBUG_S(-3, 'Ustawienie adresu IP/maskę oraz bramy domyślnej', $result);
|
|
|
|
|
+
|
|
|
|
|
+ $result = execOnParallels('prlctl exec "'.$h->SERVER_ADDRESS.'" "networksetup -setdnsservers Ethernet '.$subnets[$subnet]["dns"].'"');
|
|
|
|
|
+ DEBUG_S(-3, 'Ustawienie serwera DNS', $result);
|
|
|
|
|
+
|
|
|
|
|
+ exec("ping ".$h->SERVER_ADDRESS_IP." -c 5 -t 1 >/dev/null", $output, $exit);
|
|
|
|
|
+ if (!$exit) {
|
|
|
|
|
+ execOnParallels('sudo launchctl load /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
|
|
|
|
|
+ execOnParallels('sudo rm -f /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
|
|
|
|
|
+ execOnParallels('prlctl stop "'.$h->SERVER_ADDRESS.'"');
|
|
|
|
|
+ execOnParallels('prlctl delete "'.$h->SERVER_ADDRESS.'"');
|
|
|
|
|
+ throw new Exception('Błąd - maszyna wirtualna nie odpowiada na pingi, usuwam maszynę i przerywam...');
|
|
|
|
|
+ }
|
|
|
|
|
+ DEBUG_S(-3, 'Maszyna wirtualna odpowiada na "pingi"', $output);
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'/Applications/Server.app/Contents/ServerRoot/usr/sbin/changeip '.$h->SERVER_ADDRESS_IP.' procesy5 "'.$h->SERVER_ADDRESS_IP.'"\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+ sleep(2);
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set HostName "'.$h->SERVER_ADDRESS.'"\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+ sleep(2);
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set ComputerName "'.$h->SERVER_ADDRESS.'"\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+ sleep(2);
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set LocalHostName "'.str_replace('.','-',$h->SERVER_ADDRESS).'"\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+ sleep(2);
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'dscl . passwd /Users/server "'.str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD).'"\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+ sleep(2);
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'ldappasswd -x -H ldapi://%2Fvar%2Frun%2Fldapi -s "'.str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD).'" uid=diradmin,cn=users,dc=procesy5,dc=local\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+ sleep(2);
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'printf "127.0.0.1\t'.$h->SERVER_ADDRESS.'\n" >> /etc/hosts\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+
|
|
|
|
|
+ echo "<br/>Kopiowanie pliku instalatora Procesy5";
|
|
|
|
|
+ $cmd = '/opt/local/bin/sshpass -v -p "'.str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD).'" scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "'.$file.'" "server@'.$h->SERVER_ADDRESS_IP.':Downloads/'.$package.'"';
|
|
|
|
|
+ $result = shell_exec($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+
|
|
|
|
|
+ echo "<br/>Instalowanie Procesy5";
|
|
|
|
|
+ $cmd = 'screen -d -m prlctl exec "'.$h->SERVER_ADDRESS.'" \'touch /var/root/procesy5_install.started; installer -package "/Users/server/Downloads/'.$package.'" -target "/" -verboseR > /var/root/procesy5_install.log; touch /var/root/procesy5_install.completed\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, $cmd, $result);
|
|
|
|
|
+
|
|
|
|
|
+ echo "<br/><font size=3 color=orange><b>Utuchomiono w tle instalację Procesy5 na maszynie wirtualnej ".$h->SERVER_ADDRESS.".<br/>Aby sprawdzić status instalacji, kliknij na \"4. STATUS_INSTALACJI_NA_PARALLELS\"</b></font><br/><br/>";
|
|
|
|
|
+
|
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
|
+ echo "<br/><font size=4 color=red><b>".$e->getMessage()."</b></font><br/><br/>";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } else if(!empty($_REQUEST['STATUS_INSTALACJI_NA_PARALLELS'])) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'[ -f "/var/root/procesy5_install.started" ] && echo 1\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ if (!$result) throw new Exception("Błąd - automatyczna instalacja Procesy5 na wirtualnej maszynie ".$h->SERVER_ADDRESS." nie została uruchomiona.");
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'[ -f "/var/root/procesy5_install.completed" ] && echo 1\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ if ($result) {
|
|
|
|
|
+ echo "<br/><font size=4 color=green><b>Potencjalnie zainstalowano Procesy5 na ".$h->SERVER_ADDRESS."<br/>";
|
|
|
|
|
+ echo "Przetestuj na <a href='https://".$h->SERVER_ADDRESS."' target=_blank>https://".$h->SERVER_ADDRESS."</a>";
|
|
|
|
|
+ if (!preg_match('/^(.*)\.procesy5\.pl$/',$h->SERVER_ADDRESS,$matches)) {
|
|
|
|
|
+ echo " lub <a href='https://".$h->SERVER_ADDRESS.".procesy5.pl' target=_blank>https://".$h->SERVER_ADDRESS.".procesy5.pl</a>";
|
|
|
|
|
+ }
|
|
|
|
|
+ echo "</b></font><br/><br/>";
|
|
|
|
|
+ } else echo "<br/><font size=4 color=orange><b>Instalacja Procesy5 na ".$h->SERVER_ADDRESS." w trakcie. Odśwież stronę celem ponownej weryfikacji stanu instalacji.</b></font><br/><br/>";
|
|
|
|
|
+
|
|
|
|
|
+ $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'cat /var/root/procesy5_install.log\'';
|
|
|
|
|
+ $result = execOnParallels($cmd);
|
|
|
|
|
+ DEBUG_S(-3, "Log z instalatora", "<pre>".$result."</pre>");
|
|
|
|
|
+ echo "<br/>";
|
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
|
+ echo "<br/><font size=4 color=red><b>".$e->getMessage()."</b></font><br/><br/>";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|