Migrazione di un repository CVS

Puo essere necessario per svariati motivi, migrare un repository CVS da un server ad un altro. L'operazione comporta sostanzialmente, la creazione di un file archivio della directory del CVS, e la scompattazione sul nuovo server dopo averlo configurato.

PREPARAZIONE NUOVO SERVER  
Sul nuovo server che ospiterà il repository, sarà necessario ricreare gli stessi utenti e gruppi presenti in quello di partenza:

[email protected]:/# useradd cvs  
[email protected]:/home# groupadd cvs

Quindi sarà necessario configurare il file inetd.conf al fine di impostare il server in ascolto, quindi riavviare il superdemone inetd:  
[email protected]:/# grep cvs /etc/inetd.conf
cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs --allow-root=/home/cvs pserver

[email protected]:/home# /etc/rc.d/rc.inetd restart
Starting Internet super-server daemon:  /usr/sbin/inetd


Oppure nel caso si utilizzi xinetd:  
[[email protected] xinetd.d]# cat cvspersver  
{
        port           = 2401
        socket_type    = stream
        protocol       = tcp
        user           = root
        wait           = no
     passenv         = PATH
        server         = /usr/bin/cvs
    server_args       = -f --allow-root=/home/cvs/ pserver
}
  

[[email protected] etc]# /etc/rc.d/init.d/xinetd restart  
Stopping xinetd:                                           [  OK  ]  
Starting xinetd:                                           [  OK  ]
  

E' possibile verifcare se la configurazione è corretta, controllando che la porta 2401 sia in stato listen:  
[email protected]:/home/cvs# netstat -nat | grep 2401  
tcp        0      0 0.0.0.0:2401            0.0.0.0:*               LISTEN
  

Infine in caso di utilizzo, è possibile settare le policy di accesso tramite i file hosts.deny e hosts.allow:  
[email protected]:/home# grep cvs /etc/hosts.allow
cvs  : 192.168.0.


COPIA E SCOMPATTAZIONE REPOSITORY  
Una volta terminata la configurazione, è necessario creare il tar del contenuto del repository:  
[email protected]:/disco2# tar cvfz cvsjoker.gz cvs/  
cvs/  
cvs/CVSROOT/  
cvs/CVSROOT/Emptydir/  
cvs/CVSROOT/loginfo  
cvs/CVSROOT/loginfo,v  
cvs/CVSROOT/rcsinfo  
cvs/CVSROOT/rcsinfo,v  
cvs/CVSROOT/editinfo  
cvs/CVSROOT/editinfo,v  
cvs/CVSROOT/verifymsg  
cvs/CVSROOT/verifymsg,v  
cvs/CVSROOT/commitinfo  
cvs/CVSROOT/commitinfo,v  
...


Quindi è possibile trasferirlo  nuovo server:  
[email protected]:/disco2# scp cvsjoker.gz enigma:/home  
[email protected]'s password: **********  
cvsjoker.gz          100%   |**************************************************************************************************************************| 15090 KB    00:35


Infine scompattare il file tar:  
[email protected]:/home# tar xvfz cvsjoker.gz  
cvs/  
cvs/CVSROOT/  
cvs/CVSROOT/Emptydir/  
cvs/CVSROOT/loginfo  
cvs/CVSROOT/loginfo,v  
cvs/CVSROOT/rcsinfo  
cvs/CVSROOT/rcsinfo,v  
cvs/CVSROOT/editinfo  
cvs/CVSROOT/editinfo,v  
cvs/CVSROOT/verifymsg  
cvs/CVSROOT/verifymsg,v  
cvs/CVSROOT/commitinfo  
...

  
A questo punto il repository è pronto per l'uso, non è necessario reinizializzare il repository in quanto i dati di configurazione del repository sono già presenti all'interno della directory CVSROOT. L'ultimo passo da compiere è solamente l'aggiornamento delle stringhe di connessione dei client al nuovo indirizzo.

Privacy Policy