Guía de Git ™: para administradores de sistemas

Guía de Git ™: para administradores de sistemas


Última modificación: 30 de julio de 2021

Visión general

los Control de versiones de Git La función incluye varios cambios de la configuración predeterminada de Git ™. Además, imponemos ciertas restricciones a los repositorios alojados en cPanel. Este documento también incluye información que puede ayudarlo a solucionar los problemas de los usuarios de cPanel.

Restricciones

Esta característica impone las siguientes restricciones en los repositorios alojados en cPanel:

  • Actualmente, solo admitimos un único repositorio remoto para cada repositorio local. Para utilizar varios repositorios remotos, los usuarios deben solamente use la línea de comando.

  • Usuarios no poder incluir espacios en blanco o los siguientes caracteres en las rutas del repositorio: * | " ' < > & @ ` $ { } [ ] ( ) ; ? : = % #

  • Los usuarios no pueden usar esta función para crear, eliminar o ver repositorios en los siguientes directorios controlados por cPanel:

    • .cpanel
    • .cphorde
    • .htpasswds
    • .ssh
    • .trash
    • access-logs
    • cgi-bin
    • etc
    • logs
    • perl5
    • mail
    • spamassassin
    • ssl
    • tmp
    • var

Nota:

Usuarios de cPanel no poder utilizar el . o .. referencias de directorio cuando ingresan a la ruta del repositorio en la interfaz.

Cambios de configuración

Esta función altera las siguientes opciones de configuración:

  • gc.auto – Hemos desactivado la configuración de recolección de basura de Git para todos los repositorios administrados por cPanel.
  • receive.denyCurrentBranch – El sistema establece automáticamente esta configuración en cada archivo de configuración del repositorio administrado por cPanel al updateInstead opción.
    • El sistema garantiza esta configuración cada vez que crea un nuevo repositorio a través del VersionControl::create función.
    • los updateInstead La opción hace que Git actualice automáticamente el árbol de trabajo cada vez que inserta cambios en la rama actual.

Esta función utiliza un Git RPM proporcionado por cPanel. Los enlaces simbólicos de Git RPM binarios de Git en el /usr/local/cpanel/3rdparty/bin/ directorio al /usr/local/cpanel/3rdparty/lib/path-bin/ directorio, para que existan en la ruta predeterminada del usuario.

Despliegue

Importante:

Nosotros fuertemente Recomendamos que solo implemente los cambios desde un repositorio remoto o un clon del mismo en su computadora local. Debería no cambiar directamente el contenido del repositorio administrado por cPanel. Para obtener más información sobre nuestra configuración de implementación sugerida y cómo configurarla, lea nuestra Guía de Git: cómo configurar la implementación documentación.

Antes de la implementación, repositorios debe cumplir con los siguientes requisitos:

  • Un check-in válido .cpanel.yml archivo en el directorio de nivel superior.
  • Una o más sucursales locales o remotas.
  • Un árbol de trabajo limpio.

Si un repositorio lo hace no cumplen estos requisitos, el sistema no mostrar información de implementación. Además, deshabilitará la funcionalidad de implementación.

Nota:

  • El sistema agrega un post-receive enganche a todos los repositorios administrados por cPanel.
    • Este gancho ejecutará automáticamente cualquier comando en el archivo .cpanel.yml siempre que se implementen cambios.
    • Para obtener más información, lea Git’s githooks documentación.
  • El sistema almacena datos históricos relacionados con el proceso de implementación en una base de datos SQLite dentro del /home/user/.cpanel/datastore/vc_deploy.sqlite archivo, donde user representa el nombre de la cuenta de cPanel.

Para obtener instrucciones para configurar la implementación, lea nuestro Guía de Git: cómo configurar la implementación documentación.

Para obtener más información sobre la implementación, lea nuestro Guía de Git – Implementación documentación.

Verificación de la clave de host SSH

Cuando los usuarios clonan un repositorio a través de SSH, el sistema comprobará automáticamente la clave SSH pública del servidor remoto en el /home/user/.ssh/known_hosts archivo, donde user representa el nombre de usuario de la cuenta.

  • Si el host remoto es no registrado en el sistema, el sistema le pedirá al usuario que lo acepte. Luego, lo agregará al /home/user/.ssh/known_hosts archivo, donde user representa el nombre de usuario de la cuenta.
  • Si el host remoto ya está registrado, el sistema mostrará un mensaje de confirmación.
  • Si la clave pública del host remoto ha cambiado, el sistema mostrará una advertencia.
    • Para hosts remotos de terceros, busque anuncios sobre actualizaciones de claves públicas. La mayoría de las empresas que alojan repositorios anuncian estos cambios.
    • Para los hosts remotos que usted controla, considere si los eventos recientes en su sistema han causado cambios en la clave pública.
    • Para cualquier repositorio privado, haga cierto que ha realizado los pasos en nuestro Guía de Git: configurar el acceso a repositorios privados documentación.

El sistema también realiza estas comprobaciones cada vez que un usuario actualiza la información del repositorio o intenta extraer cambios del repositorio a través de la interfaz cPanel.

Advertencia:

Si no puede verificar la validez del cambio, tenga cuidado, especialmente si el repositorio incluye contenido confidencial. Una clave SSH alterada puede indicar una Ataque man-in-the-middle.

Para que los usuarios vean estas advertencias, debe habilitar el Habilite la comprobación estricta de la clave de host SSH entorno en el Seguridad sección de WHM Ajustar la configuración interfaz (WHM >> Inicio >> Configuración del servidor >> Ajustar la configuración).

Solución de problemas

Si los usuarios de cPanel experimentan problemas con sus repositorios, utilice los siguientes pasos para solucionarlos.

Nota:

Esta función registra mensajes y errores en las siguientes ubicaciones:

  • /usr/local/cpanel/logs/error_log – Errores y rastros de pila.
  • /home/username/.cpanel/logs/user_task_runner.log – Elementos relacionados con la cola.
  • /home/username/.cpanel/logs/vc_TIMESTAMP_git_create.log – Problemas relacionados con la creación, donde TIMESTAMP representa el momento de la operación.
  • /home/username/.cpanel/logs/vc_TIMESTAMP_git_deploy.log – Problemas relacionados con la implementación, donde TIMESTAMP representa el momento de la operación.

Faltan repositorios

Si existen repositorios en la línea de comando pero no se muestran en cPanel’s Control de versiones de Git interfaz (cPanel >> Inicio >> Archivos >> Control de versiones de Git), el problema puede ocurrir porque la función ignora los repositorios que los usuarios crearon en la línea de comandos.

Ramas faltantes

Si la lista esperada de ramas no se muestra en cPanel’s Control de versiones de Git interfaz (cPanel >> Inicio >> Archivos >> Control de versiones de Git), el problema puede deberse a las siguientes causas:

  • Las ramas existen en las copias del repositorio en su computadora local o en el host del repositorio remoto, pero no no existen dentro del repositorio administrado por cPanel.
  • El repositorio es un repositorio simple. Los repositorios desnudos no incluyen sucursales.

Repositorios clonados

Mientras el sistema clona el repositorio remoto, cPanel’s Control de versiones de Git interfaz (cPanel >> Inicio >> Archivos >> Control de versiones de Git) voluntad solamente muestra el nombre y la ruta del repositorio.

Cuando los usuarios clonan un repositorio, el sistema lo clona a través de un proceso en cola que se ejecuta como ese usuario de cPanel. Los clones pueden requerir una gran cantidad de tiempo, que depende del tamaño del repositorio a clonar.

  • Mientras se ejecuta el proceso de clonación, cPanel’s Control de versiones de Git interfaz (cPanel >> Inicio >> Archivos >> Control de versiones de Git) voluntad solamente mostrar el nombre del repositorio, la ruta del repositorio y un indicador de progreso. Además, el sistema deshabilitará temporalmente la mayor parte de la funcionalidad de administración para ese repositorio.

  • los process_user_tasks binary se ejecuta como el usuario de cPanel para procesar cada clon, y la cola para cada usuario existe en su .cpanel/user_tasks/ directorio. Para resolver problemas con clones, detenga el proceso y elimine el directorio.

Acceso SSH

Si los usuarios experimentan problemas con el acceso SSH, asegúrese de que el servidor y las cuentas de los usuarios incluyan las siguientes configuraciones y configuraciones:

  • El puerto 22 es de acceso público. Si el servidor usa un puerto Git no estándar, use el ssh -p port comando, donde port representa el número de puerto para SSH en la cuenta.

  • los Acceso a Shell La configuración está habilitada para la cuenta en WHM Modificar una cuenta interfaz (WHM >> Inicio >> Funciones de cuenta >> Modificar una cuenta).

  • los Terminal y acceso SSH La función está habilitada para la lista de funciones del usuario en WHM Administrador de funciones interfaz (WHM >> Inicio >> Paquetes >> Administrador de funciones).

Si ninguna de estas soluciones soluciona el problema, asegúrese de que el usuario haya configurado correctamente su público Claves SSH en cPanel’s Acceso SSH interfaz (cPanel >> Inicio >> Seguridad >> Acceso SSH).

Nota:

Si un usuario intenta clonar un repositorio remoto a través de SSH y recibe errores sobre una conexión rechazada, realice una de las siguientes acciones:

  • Clone el repositorio a través de HTTPS en una configuración de solo lectura.
  • Registre el par de claves SSH de la cuenta cPanel con el host del repositorio remoto como clave de implementación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *