Z końcem roku wygasa moje ostatnie konto hostingowe, czyli hosting współdzielony. Zostaną mi tylko konta opłacane bezpośrednio przez niektórych klientów (coś o tym będzie niebawem). Wprawdzie z takim zamiarem nosiłem się od dawna, to cały czas utrzymywałem 2 ostatnie konta tego typu, na których trzymałem „spokojniejsze strony”. Pierwsze konto pożegnałem we wrześniu, za kilka dni pożegnam ostatnie. Nie będę ukrywał, że w podjęciu decyzji pomogła mi firma hostingowa (o tym też będzie niebawem). Niezależnie od powodów, całkowita rezygnacja z hostingu współdzielonego oznacza, że musiała rozwinąć się moja flota serwerów VPS…

Rsync i SSH, czyli VPS2VPS

W pewnym momencie, dzięki procedurom i automatyzacji niektórych czynności konfiguracja kolejnego serwera staje się rutyną, to jednak są pewne zadania, które trzeba wykonać, i które zajmują czas, który w innym przypadku można by przeznaczyć na inne zadania (lub rozrywki ;-)). Stąd w tym gorącym okresie (Święta Bożego Narodzenia + pożegnanie hostingów) postanowiłem maksymalnie zautomatyzować całą operację.

Jeśli dostawca usług pozawala, to najprościej wykonać to za pomocą przygotowanego wcześniej obrazu systemu, dzięki czemu cała operacja nie dość, że jest szybka i wygodna, to raczej na pewno nie spotkają nas w jej trakcie jakieś nieprzewidziane przygody. Tak zazwyczaj robię np. w przypadku serwerów w DigitalOcean.

Tym razem jednak takiej opcji nie mam, bo wprawdzie „ten konkretny dostawca usługi” ogólnie posiada coś takiego, ale tylko w najwyższych planach, z których nie skorzystałem – tym razem postanowiłem rozdzielić strony na kilka mniejszych maszyn, choćby po to by móc je wzajemnie synchronizować. Dlatego postanowiłem skorzystać z programu Rsync, za pomocą którego bezpiecznie (z wykorzystaniem SSH) przeniosłem wszystkie dane między maszynami.

Wykluczeni i wykluczone

Zanim zaczniemy kopiowanie musimy określić katalogi, które wykluczymy z tej operacji, bo nawet w sytuacji takiej jak moja, czyli kopiowanie w obrębie maszyn o identycznej konfiguracji programowo-sprzętowej u tego samego dostawcy inaczej wystąpią problemy.

W moim przypadku standardowa lista wykluczonych katalogów dla VPSa na Debianie wygląda tak:

/boot
/dev
/media
/mnt
/proc
/run
/sys
/tmp

Do tego kilka plików:

/initrd.img
/vmlinuz
/etc/fstab
/etc/network/interfaces
/etc/hostname
/etc/hosts

Do tego zazwyczaj dochodzą jakieś pojedyncze katalogi związane np. z kopiami zapasowymi (BackUp), ale to już każdy z Was musi określić je samodzielnie.

Kopiowanie, czyli synchronizacja

Następnym krokiem jest synchronizacja plików za pomocą programu Rsync (powinien być zainstalowany na obu maszynach), z wykorzystaniem bezpiecznego połączenie przez SSH.

Z racji tego, że pliki będę kopiował na świeżutki serwer zdalny, to mogę skorzystać z takiego polecenia:

sudo rsync -aHlxvz --numeric-ids --progress --delete --exclude=/boot var click_object = {"ajax_url":"https:\/\/webinsider.pl\/wp-admin\/admin-ajax.php"};