2012-03-23 14 views
10

Ho un server gitolite funzionante. Tuttavia, voglio spostarlo in una configurazione identica, ma su una macchina più grande. Anche se ho gitolite al lavoro, non sono sicuro delle corde sotto di esso. Principalmente il suo rapporto con ssh.Spostamento del server gitolite

Vorrei installare solo i pacchetti gitolite, git-core. E sposta le directory del repository per l'utente git. Nessuno dei tasti deve essere modificato. È corretto ? quali sono i legami di configurazione che gitolite ha con il server corrente. Sto lavorando con Ubuntu

Sono stato particolarmente confuso da gl-setup, che ha fatto il lavoro, ma mi lascia nel buio del processo.

Grazie

risposta

9

ciò che è necessario è anche quello di spostare la vostra configurazione ssh:

~/.ssh/authorized_keys 

Questo è il file utilizzato da SSH e configurato da Gitolite al fine di:

  • lista tutta la chiave pubblica autorizzata
  • associata a uno forced-command script
  • passare il nome utente diritto di script gitolite

Vedi "How Gitolite uses ssh"


Il PO conferma che era il problema e ricorda alla documentazione Gitolite:
"moving the whole thing from one server to another":
(nota: questo è per , ma l'idea è la stessa per Gitolite V3 or 'g3')

L'idea alla base di questa procedura ss è quello di creare una nuova istanza di Gitolite, e quindi spingere il repository Gitolite esistente, che ridichiarà automaticamente tutte le chiavi esistenti esistenti nel nuovo server ~/.ssh authorized_keys per te.

  • installare gitolite. Non preoccuparti per il pubkey utilizzato nella fase gl-setup - per esempio, questo farà bene:
 
    ssh-keygen -q -N '' -f dummy 
    gl-setup -q dummy.pub 
  • modificare il file rc di avere impostazioni simili a quello vecchio .
  • Non copiare completamente l'intero file: alcune delle variabili (in particolare GL_PACKAGE_CONF e GL_PACKAGE_HOOKS) dipendono dall'installazione e non devono essere toccate!
    Fare un diff o un vimdiff e copiare solo ciò che si sa è cambiato sul vecchio server.
  • disabilita il vecchio server in modo che gli utenti non inviino alcuna modifica.
    Ci sono diversi modi per fare questo, ma il più semplice è di inserire questa riga nella parte superiore del ~/.gitolite.rc sul vecchio server:
 
    exit 1; 
  • copiare il contenuto del $REPO_BASE nel vecchio server a $REPO_BASE sul nuovo server.
    Per impostazione predefinita, come sai, questi sono entrambi $HOME/repositories.
  • chown -R i file dell'utente corretto se è stato copiato utilizzando root.
  • sistemare i ganci
 
    gl-setup 
  • innescare una spinta al repo di amministrazione
 
    git clone repositories/gitolite-admin.git /tmp/gitolite-admin 
    cd /tmp/gitolite-admin 
    git commit --allow-empty -m 'trigger compile on new server' 
    gl-admin-push -f 
+1

Grazie per il replay. Il link che aiuta di più è – jeremyvillalobos

+0

Grazie per il replay. Il link che aiuta di più è http://sitaramc.github.com/gitolite/moveserver.html. Ho dovuto controllare l'ultima gitolite per usare il comando gl-admin-push. Il lavoro è finito ... grazie – jeremyvillalobos

+0

@ user1052943: eccellente. Ho incluso questo processo nella risposta per maggiore visibilità. – VonC

13

Le istruzioni sono cambiate per Gitolite V3

(Copiato da http://gitolite.com/gitolite/rare.html):

  1. Installare gitolite sul nuovo server, utilizzando la stessa chiave per l'amministratore come per il vecchio server.

  2. Copia il file .gitolite.rc dal vecchio server, sovrascrivendolo.

  3. Disabilitare il server precedente in modo che le persone non lo spingano. Ci sono diversi modi per farlo, ma il più semplice è quello di inserire exit 1; in cima ~/.gitolite.rc sul vecchio server:

  4. copiare tutti i pronti contro termine derivanti dal vecchio server, tra cui gitolite-admin. Assicurati che i file finiscano con la proprietà e le autorizzazioni corrette; in caso contrario, chown/chmod loro.

  5. Corsa gitolite setup.

  6. Su un clone del vecchio gitolite-admin, aggiungere un nuovo telecomando (o modificarne uno esistente) per puntare al nuovo server. Quindi git push -f a questo telecomando.

+0

Io uso questa procedura con gitolite v3.5.2-5 e funziona senza alcun problema. – gontard

Problemi correlati