2012-03-23 17 views
10

Tengo un servidor gitolite en funcionamiento. Sin embargo, quiero moverlo a una configuración idéntica, pero en una máquina más grande. A pesar de que tengo gitolita funcionando, no estoy seguro de las cadenas debajo de ella. Principalmente su relación con ssh.Mover el servidor de gitolite

Me gustaría simplemente instalar los paquetes gitolite, git-core. Y mueva los directorios del repositorio para el usuario de git. Ninguna de las claves necesita cambiar. Es esto correcto ? cuáles son los lazos de configuración que tiene gitolite con el servidor actual. Estoy trabajando con Ubuntu

Me quedé especialmente confundido por gl-setup, que hizo el trabajo, pero me deja en la oscuridad sobre el proceso.

Gracias

Respuesta

9

Lo que se necesita es también para mover su configuración ssh:

~/.ssh/authorized_keys 

Ese es el archivo utilizado por SSH y configurado por Gitolite con el fin de:

  • lista toda la clave pública autorizada
  • lo asoció con un forced-command script
  • pasar el nombre de usuario correcto a la secuencia de comandos gitolite

Ver "How Gitolite uses ssh"


El PO confirma que era el tema y señala a la documentación Gitolite:
"moving the whole thing from one server to another":
(nota: esto es para 'g2'; ie Gitolite V2, pero la idea es la misma para Gitolite V3 or 'g3')

La idea detrás de este proce ss es crear una nueva instancia de Gitolite y luego impulsar su repositorio existente de Gitolite, que redeclarará automáticamente todas sus claves existentes actuales en su nuevo servidor ~/.ssh authorized_keys para usted.

  • instalar gitolite. No se preocupe por la pubkey utilizado en la etapa gl-setup - por ejemplo, esto va a hacer muy bien:
 
    ssh-keygen -q -N '' -f dummy 
    gl-setup -q dummy.pub 
  • editar el archivo rc para tener una configuración similar a la anterior .
  • No copie todo el archivo directamente - algunas de las variables (notablemente GL_PACKAGE_CONF y GL_PACKAGE_HOOKS) dependen de la instalación y no deben tocarse.
    Realice un diff o vimdiff y copie solo lo que sabe que cambió en el servidor anterior.
  • desactivar el servidor anterior para que los usuarios no le envíen ningún cambio.
    Hay varias maneras de hacer esto, pero la más sencilla es insertar esta línea en la parte superior de ~/.gitolite.rc en el servidor antiguo:
 
    exit 1; 
  • copiar el contenido de $REPO_BASE en el servidor antiguo a $REPO_BASE en el nuevo servidor.
    Por defecto, como usted sabe, ambos son $HOME/repositories.
  • chown -R los archivos al usuario correcto si copió utilizando la raíz.
  • arreglar los ganchos
 
    gl-setup 
  • gatillo un empuje para el repositorio de administración
 
    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

Gracias por la repetición. El enlace que más ayuda es – jeremyvillalobos

+0

Gracias por la repetición. El enlace que más ayuda es http://sitaramc.github.com/gitolite/moveserver.html. Tuve que pagar la última gitolita para usar el comando gl-admin-push. El trabajo está hecho ... gracias – jeremyvillalobos

+0

@ user1052943: excelente. Incluí ese proceso en la respuesta para una mayor visibilidad. – VonC

13

Las instrucciones han cambiado para Gitolite V3

(Copiado de http://gitolite.com/gitolite/rare.html):

  1. Instalar gitolite en el nuevo servidor, utilizando la misma clave para el administrador como para el servidor antiguo.

  2. Copie el archivo .gitolite.rc del servidor anterior, sobrescribiendo este.

  3. Deshabilita el servidor anterior para que la gente no lo presione. Hay varias maneras de hacer esto, pero la más sencilla es insertar exit 1; en la parte superior de ~/.gitolite.rc en el servidor antiguo:

  4. copiar todos los repositorios de la vieja servidor, incluyendo gitolite-admin. Asegúrese de que los archivos terminen con la propiedad y los permisos correctos; si no, chown/chmod ellos.

  5. Ejecute gitolite setup.

  6. En un clon de la antigua gitolite-admin, agregue un nuevo control remoto (o cambie uno existente) para que apunte al nuevo servidor. Luego git push -f a este control remoto.

+0

Utilizo este procedimiento con gitolite v3.5.2-5 y funciona sin ningún problema. – gontard

Cuestiones relacionadas