Adott egy szerver, Debian 8, mysql, php5.3, postfix alapokra van egy ősrégi ISPConfig (3.0.4.1)  felhúzva. Több ezer ügyfél / weboldal kiszolgálása történik róla. Infrastruktúra átalakítás miatt jött egy igény, hogy készítsek PHP alapú migrációs eszközt.

Egy migrációs eszköz megvalósításának első lépése a feladat felbontása részfeladatokra. Nézzük mit fogunk megvalósítani:

  • exportáló ami a régi ISPConfigból az adatokat JSON tömbökbe illetve tar.gz állományokba exportálja
  • importáló ami az új ISPConfighoz csatlakozik és az ISPConfig remote api -n keresztül felveszi a klienst, hozzáadja az adatokat.

A feladat összetettsége miatt külön posztokban fogom tárgyalni az egyes részeket, terveim alapján így valahogy:

  • ISPConfig távoli vezérlése, SOAP API csatlakozás, feltételei
  • ISPConfig export SOAP API kihagyásával natív mysqli kapcsolódással
  • ISPConfig export folytatása,
    • sql adatbázisok dumpolása
    • webroot becsomagolása
    • VMAIL mappa becsomagolása
  • ISPConfig import SOAP API csatalkozás, Kliens létrehozása
  • ISPConfig import Site, Mail adatok importálása

Végeredmény kettő php file lesz melyek közül egyiket a forrásgépen másikat a célgépen kell futtatni egy argumentum megadásával és a költözés automatikusan le fog zajlani.

 

 

 

$client = new SoapClient(null, array('location' => $soap_location, 'uri' => $soap_uri));
try {
if ($session_id = $client->login($username, $password)) {
echo 'Logged into remote server sucessfully.';
echo PHP_EOL;
}
} catch (SoapFault $e) {
die('SOAP Error: ' . $e->getMessage());
echo "Please contact the server administator";
}

Leave a comment

Your email address will not be published. Required fields are marked *