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:

root@enigma:/# useradd cvs  
root@enigma:/home# groupadd cvs

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

root@enigma:/home# /etc/rc.d/rc.inetd restart
Starting Internet super-server daemon:  /usr/sbin/inetd


Oppure nel caso si utilizzi xinetd:  
[root@vagante 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
}
  

[root@vagante 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:  
root@enigma:/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:  
root@enigma:/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:  
root@Joker:/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:  
root@Joker:/disco2# scp cvsjoker.gz enigma:/home  
root@enigma's password: **********  
cvsjoker.gz          100%   |**************************************************************************************************************************| 15090 KB    00:35


Infine scompattare il file tar:  
root@enigma:/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