Internet è il postino dei nostri tempi che nessun cane azzannerà.
Una volta eseguita una installazione standard di Archlinux, proseguiamo con l'installazione LDAP + Samba come abbiamo già imparato a fare, anche se la configurazione di Samba, compresa anche la parte smbldap-tools, la lasciamo per il momento da parte, dal momento che dobbiamo "carpirla" dal vecchio server che andreamo a sostituire. La cosa che ci preme ora è preparare il sistema per il trasferimento dei dati che faremo con rsync. Cosa? Cominciamo subito con il trasferimento dei dati? Certo che si. Dobbiamo guadagnare tempo.
Si potrebbe pensare che il trasferimento dei dati sia l'ultima cosa da fare in una migrazione, invece io parto proprio da qui, dato che il processo dura parecchio, e non posso pensare di farlo all'ultimo passaggio perdendo ore e ore in questa fase. Meglio farlo più volte anche "a caldo" , di volta in volta verranno copiati solo i nuovi file e quelli che avranno subito modifiche dall'ultima copia velocizzando notevolmente il processo.
Per far questo utilizzeremo rsync, un software "figlioccio" di Samba, veramente ben fatto, potente e multipiattaforma che permette di sincronizzare cartelle e file anche attraverso la rete utilizzando una architettura client server.
Nel proseguo chiamaremo archinew il nuovo server e archiold il vecchio. Come al solito questo denota la mia infinita fantasia nello scegliere i nomi :)
Niente di complicato, lo installiamo su archinew :
sudo pacman -S rsync
sudo /etc/rc.d/rsyncd start
Siccome non si trova la versione 3 di rsync per fedora core 3, scarichiamo i sorgenti dal sito e "sporchiamo" la nostra installazione con gli arcinoti :
./configure ; make ; make install
rpm -e rsync
rsync ci permette di effettuare la sincronia dei dati preservando i permessi utente dei file e delle cartelle che copia. Questo aspetto è fondamentale. I dati trasferiti e le cartelle create sul nuovo server manterranno tutti i flags relativi a proprietari, gruppi e anche permission ACL Posix.
Perchè questo funzioni devo momentaneamente "agganciare" archinew al server OpenLDAP che gira su archiold, così che esso possa riconoscere utenti e gruppi.
Dunque, per il momento, nella configurazione client LDAP di archinew devo impostare archoiold come server LDAP e controllare che funzioni correttamente.
Per fare la copia creiamo un piccolo script che con rsync si occupa del lavoro sporco. Ecco qui quello che ho usato io che può essere un valido punto di partenza. Lo script và creato su archiold e si chiama syncsamba :
#!/bin/bash
echo "Vuota cestini"
purge
echo "Sincronizza dati condivisione Samba";
/usr/local/bin/rsync -Aarlv --delete /samba/* root@archinew:/samba
echo "Sincronizza dati home directory utenti";
DIR=`ls /home -F | awk '/\/$/ {sub( /\/$/,""); print}'`;
for user in $DIR; do
echo "Sincronizza dati home Utente $user";
/usr/local/bin/rsync -Aarlv --delete /home/$user root@archinew:/home
done
Gli altri parametri -Aarl fanno sì che vengano mantenuti i permessi (anche quelli estesi), che vengano copiate anche le sottocartelle e che vengano eventualmente ricreati i symlink. Il parametro -v stà per "verbose", in pratica ci mostra l'andamento della copia file per file, e quindi può essere anche tralasciato.
Spero sia superfluo dire che i nomi host archinew e archiold devono essere risolti dal DNS, in caso contrario naturalmente è sufficiente sostituirli con i rispettivi indirizzi IP.
Voglio aggiungere che rsync è dotato di un numero impressionante di parametri e funzionalità, ce ne sono di veramente interessanti, vale la pena approfondire l'argomento.
Lanciando lo script syncsamba appena creato balza subito all'occhio che ogni volta che viene invocato il comando rsync mi viene richiesta la password. La cosa non ci piace per niente (anche se perfettamente giusta dal punto di vista sicurezza), non possiamo pensare di digitare manualmente la password per ognuna della 80 home che copiamo ! Vediamo che possiamo fare.
Siccome sappiamo che rsync utilizza ssh per la copia, rivolgiamo lo sguardo su di esso per scavalcare il problema. Come posso collegarmi con ssh ad un host senza digitare la password ? Semplice (si fà per dire), dobbiamo "farci conoscere" dall'host remoto fornendogli la nostra chiave pubblica. Vediamo come si fà.
Ricordo che stò agendo come root, in quanto devo avere permessi di lettura/scrittura su entrambi i server per copiare i dati. Generiamo la chiave su archiold:
ssh-keygen -t rsa
Ora copiamo la chiave pubblica su archinew con il comando scp in questo modo :
scp ~/.ssh/id_rsa.pub archinew:.ssh/authorized_keys2
Proviamo digitando da archiold:
ssh archinew
Ora posso lanciare syncsamba da archiold (o schedularlo con cron) e lasciarlo compiere il suo sporco lavoro. La prima volta sarà un processo lungo, ma successivamente molto più snello dal momento che verranno solo allineate le differenze.
La prossima volta vedremo di copiare le configurazioni e sopratutto il database LDAP con utenti e password.
Byez.
Recent comments
1 min 12 sec ago
1 week 1 day ago
3 weeks 20 hours ago
4 weeks 3 days ago
7 weeks 6 days ago
13 weeks 1 hour ago
13 weeks 3 days ago
15 weeks 5 days ago
16 weeks 3 days ago
19 weeks 22 hours ago